美文网首页
js 实现文字横向无限轮播

js 实现文字横向无限轮播

作者: Sh1mmer | 来源:发表于2022-11-01 15:55 被阅读0次

原理是创建轮播的文字两份,当其中一份在父控件上完全消失后让他的scrollleft再次回到起始位置

html

        <div id="scroll_div">
            <div id="scroll_begin">
                2022年11月2日 星期三 农历十月初九
                1、梦天实验舱与空间站组合体在轨完成交会对接,目前已有17国科学实验项目入选中国空间站。
                2、五部门: 到2026年我国虚拟现实产业规模超过3500亿元。
                3、税务总局:累计减税降费超1万亿,目前超八成个体工商户已无需缴税。
                4、多地发布咽拭子采集规范:擦拭至少“来回3次”“上下3次”。
                5、河南、内蒙古强调精准防控:不能无差别封控,让城市逐渐恢复活力。
                6、江苏新规:在全省推行“带押过户”,降低二手房交易风险和成本。
                7、西藏那曲市尼玛县1日21时发生4.9级地震,震源深度10千米。
                8、94版《三国演义》关羽扮演者陆树铭去世,享年66岁。
            </div>
            <div id="scroll_end"></div>
        </div>

css


        #scroll_div {
            height: 26px;
            overflow: hidden;
            white-space: nowrap;
            width: 100%;
            margin-left: 10px;
        }

        #scroll_begin,
        #scroll_end {
            display: inline;
        }

js

        function ScrollImgLeft() {
            var speed = 50;
            var MyMar = null;
            var scroll_begin = document.getElementById("scroll_begin");
            var scroll_end = document.getElementById("scroll_end");
            var scroll_div = document.getElementById("scroll_div");
            scroll_end.innerHTML = scroll_begin.innerHTML;
            console.log(scroll_begin.innerHTML + scroll_begin.innerHTML)
                        // 当文字少于宽度时scroll_end.offsetWidth - scroll_div.scrollLeft <= 0无法触发
            for (var i = 0; i < 7; i++) {
                if (scroll_begin.offsetWidth + scroll_end.offsetWidth < scroll_div.offsetWidth * 2) {
                    scroll_end.innerHTML = scroll_begin.innerHTML + scroll_begin.innerHTML;
                    scroll_begin.innerHTML = scroll_end.innerHTML
                } else {
                    break
                }
            }


            function Marquee() {
                if (scroll_end.offsetWidth - scroll_div.scrollLeft <= 0)
                    scroll_div.scrollLeft -= scroll_begin.offsetWidth;
                    // scroll_div.scrollLeft = 0
                else
                    scroll_div.scrollLeft++;
            }
            MyMar = setInterval(Marquee, speed);
            scroll_div.onmouseover = function() {
                clearInterval(MyMar);
            }
            scroll_div.onmouseout = function() {
                MyMar = setInterval(Marquee, speed);
            }
        }
        ScrollImgLeft();

相关文章

网友评论

      本文标题:js 实现文字横向无限轮播

      本文链接:https://www.haomeiwen.com/subject/wvyjtdtx.html