js循环滚动

//这是dom结构dom

<div id="demo"><div id="demo1">这里是你要添加的数据(有浮动记得清楚浮动,否则没高度)</div><div id="demo2"></div></div>seo

//代码网上能够搜到,原理是建立一个demo2 的div就,把demo1 的内容复制到demo2的里面。定时器来增长demo的滚动高度。当滚动到最底下时让demo的滚动高度从新赋值。判断demo2距离父级顶部的高度与demo的滚动高度差值(不循环滚动从新计算);ip

<script>io

// 判断当前数据是否超过显示区域,超过则滚动,不然不滚动
    var flag = true;
    if(demo1.offsetHeight <= demo.offsetHeight) {
        flag = false;
    } else {
        flag = true;
    }
    if(flag) {
        var speed = 10   //滚动速度,越小越快
        var cliH = demo1.offsetHeight
        demo2.innerHTML = demo1.innerHTML
        var num = demo2.offsetTop - cliH;   //  这个本来是想实现上面的判断,可是有bug。只有一条数据时会显示两条。做用是用来计算demo2的距离顶部的高度与demo的滚动高度的差,用于下面的判断。
        function Marquee() {
            if(demo2.offsetTop - demo.scrollTop <= num)
                demo.scrollTop -= demo1.offsetHeight
            else {
                demo.scrollTop++
            }
        }
        var MyMar = setInterval(Marquee, speed)
        demo.onmouseover = function() {
            clearInterval(MyMar)
        }
        demo.onmouseout = function() {
            MyMar = setInterval(Marquee, speed)
        }
    }
</script>function

相关文章
相关标签/搜索