JS实现文字无缝滚动

html结构:

<div id="main">
        <div id="dom1">
            <ul>
                <li>aaaaaaaaaa</li>
                <li>bbbbbbbbbb</li>
                <li>ccccccccccc</li>
                <li>ddddddddddd</li>
                <li>eeeeeeeeeee</li>
                <li>fffffffffff</li>
            </ul>
        </div>
    </div>

style样式:

<style>
  #main{width: 300px;height: 126px;overflow: hidden;}
</style>

JS代码:

<script>
    var main = document.getElementById("main");
    var dom1 = document.getElementById("dom1");
    //创建用于复制dom1的新节点
    var newnode = document.createElement("div");
    newnode.id = "dom2";
    main.appendChild(newnode);
    var dom2 = document.getElementById("dom2");
    var speed = 50;    //设置速度
    dom2.innerHTML = dom1.innerHTML;  //复制dom1节点
    // 滚动函数
    function moveTop() {
        // 当main向上滚动超出部分>=滚动节点高度时, 设置为scrollTop为0
        if (dom1.offsetHeight - main.scrollTop <= 0 ) {
            main.scrollTop = 0;
            // 或者main.scrollTop -= dom1.offsetHeight;
        } else {
            main.scrollTop++;
        }
    }

    var myMarquee = setInterval(moveTop, speed);  //设置定时器
    // 鼠标悬停时清除定时器停止滚动,移出后继续滚动
    main.onmouseover = function() {
        clearInterval(myMarquee);
    }
    main.onmouseout = function() {
          myMarquee = setInterval(moveTop, speed);
    }
</script>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,694评论 1 92
  • 前端必读:浏览器内部工作原理[https://kb.cnblogs.com/page/129756/] 作者: T...
    我是强强阅读 4,892评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,403评论 2 17
  • 孩子的不合作、拖拉问题,可能大部分源于我们与孩子之间由于权力之争产生了情绪对抗(或者是以前的同样经历产生了情绪积压...
    黎春花阅读 3,954评论 0 1
  • 没说出口的晚安 最后都变成了黑眼圈
    云不惊_阅读 1,504评论 0 0

友情链接更多精彩内容