当前位置: 主页 > js >

纯js实现文字无缝滚动(亲测有效)

2020-11-13  |  来源:前端入门建站教程  |  作者:大学编程课

下面前端入门建站教程为大家介绍一下纯js实现文字无缝滚动(亲测有效)

1、//html代码
<div class="scroll" id="scroll">
    <div id="scroll2">
        <ol id="data">
            //data从接口读取数据
            <li>123456778</li>
            <li>123456778</li>
            <li>123456778</li>
            <li>123456778</li>
            <li>123456778</li>
            <li>123456778</li>
            <li>123456778</li>
            <li>123456778</li>
        </ol>
    </div>
</div>

2、//css控制整体高度
#scroll{width: 300px;height: 126px;overflow: hidden;}

3、//js代码
var myMarquee = '';  //设置定时器
function listScroll(){
    //文字滚动
    var scroll = document.getElementById("scroll");
    var scroll2 = document.getElementById("scroll2");
    //创建用于复制scroll2的新节点
    var newnode = document.createElement("div");
    newnode.id = "scroll3";
    scroll.appendChild(newnode);
    var scroll3 = document.getElementById("scroll3");
    var speed = 30;    //设置速度
    scroll3.innerHTML = scroll2.innerHTML;  //复制scroll2节点
    // 滚动函数
    function moveTop() {
        // 当main向上滚动超出部分>=滚动节点高度时, 设置为scrollTop为0
        if (scroll2.offsetHeight - scroll.scrollTop <= 0 ) {
            scroll.scrollTop = 0;
            // 或者main.scrollTop -= scroll2.offsetHeight;
        } else {
            scroll.scrollTop++;
        }
    }
    myMarquee = setInterval(moveTop, speed);  //设置定时器
    // 鼠标悬停时清除定时器停止滚动,移出后继续滚动
    scroll.onmouseover = function() {
        clearInterval(myMarquee);
    }
    scroll.onmouseout = function() {
          myMarquee = setInterval(moveTop, speed);
    }
    window.onresize = function(){
        console.log(document.body.clientHeight)
    }
}
listScroll()

//注意如果数据是要实时刷新的,需要添加clearInterval(myMarquee)清掉

上面是“纯js实现文字无缝滚动(亲测有效)”的全面内容,想了解更多关于 js 文章,请继续关注前端入门建站教程。

最新文章

猜你喜欢