今天要实现个文字滚动的效果,一开始试了<marquee></marquee>这个标签,但是 发现效果不太好,不能无缝滚动,而且在手机上有卡顿不太流畅。决定用js去实现。
首先写个标签,注意下标签里面文字的长度要超出标签,因为我下面加了判断,如果没有超出就不会有滚动条,也就不会滚动哦~
<style> #scrollobj{ min-width: 70px; /*先在这里写个最小宽度*/ display: inline-block; white-space: nowrap; overflow: hidden; } </style> <body> <div id="scrollobj">这里是滚动内容纯文字哈哈哈,滚动吧</div> </body>
在你的页面里调用这个方法就ok了。
function sc() { var $scrollobj = document.getElementById('scrollobj'); function scroll(self) { /*往左*/ var tmp = (self.scrollLeft)++; //当滚动条到达右边顶端时 if (self.scrollLeft == tmp) { self.innerHTML += " " + self.innerHTML; } //当滚动条滚动了初始内容的宽度时滚动条回到最左端 if (self.scrollLeft >= self.firstChild.offsetWidth) { self.scrollLeft = 0; } } if ($scrollobj.scrollWidth > $scrollobj.offsetWidth) { // 判断是否需要滚动 var timer = setInterval(function () { scroll($scrollobj); }, 30); } }
来源:https://www.cnblogs.com/wteng/p/5729808.html