思路: 1.判断文字的长度和容器的长度,如果文字长度大于容器长度,则开始滚动,否则不滚动。 2.获取滚动条到元素左边的距离,递归滚动,直到滚动后的距离等于文字的长度退出递归。 判断文字和容器的长度可以通过offsetWidth来判断。如果文字长度大于容器长度,则开始滚动。 判断滚动的结束根据滚动条到元素左边的距离和文字的长度判断,如果滚动条到元素左边的距离等于文字的长度,则结束滚动。 完整代码如下: window.onload = function(){ //比较文字与盒子长度的大小 if(boxWidth>textWidth){ return false; } content.innerHTML += content.innerHTML; document.querySelector('.text').classList.add('padding'); //刷新textwidth textWidth = document.querySelector('.text').offsetWidth; scroll_left(); }
function scroll_left(){ if(textWidth>boxWidth){ //文字长度大于盒子长度,开始滚动 box.scrollLeft++; setTimeout('scroll_left()',1); } }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> *{ margin: auto; padding: 0; } .box{ margin-top: 150px; margin-left: 150px; color: red; white-space: nowrap; width: 200px; background: rosybrown; overflow: hidden; } .content p{ display: inline-block; } .content p.padding{ padding-right: 200px; } </style> </head> <body> <div class="box"> <div class="content"> <p class="text">实现文字的跑马灯效果,超出容器的长度则开始向左滚动</p> </div> </div> <script> let box = document.querySelector('.box'); let content = document.querySelector('.content'); let text = document.querySelector('.text'); //文本宽度 let textWidth = text.offsetWidth; //盒子宽度 let boxWidth = text.offsetWidth; window.onload = function(){ //比较文字与盒子长度的大小 if(boxWidth>textWidth){ return false; } content.innerHTML += content.innerHTML; document.querySelector('.text').classList.add('padding'); //刷新textwidth textWidth = document.querySelector('.text').offsetWidth; scroll_left(); } function scroll_left(){ if(textWidth>boxWidth){ //文字长度大于盒子长度,开始滚动 box.scrollLeft++; setTimeout('scroll_left()',1); } } </script> </body> </html>
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算