浅谈使用setInterval网页滚屏越来越快

开发需求:要求动态添加滚屏数据,多次初始化;
遇到问题:使用setInterval()每次初始化后滚动速度都会越来越快,而且clearInterval()无法停止滚动;
解决方法:由于每次赋值的setInterval()变量都会改变,所以需要把这个变量变成和调用的方法在一个作用域下,这样就解决了
滚屏源码:

//需要放到调用的代码上面
let MyMarquue;
marquue(domParent, domChild, speed) {
		domChild.innerHTML += domChild.innerHTML;
        domParent.scrollTop = 0;
        MyMarquue = setInterval(function(){
            domParent.scrollTop++;
            if (domParent.scrollTop >= domParent.scrollHeight/2){
                domParent.scrollTop = 0;
            }
        }, speed);
        domChild.onmouseover = function() {
            clearInterval(MyMar);
        };
        domChild.onmouseout = function() {
            MyMarquue = setInterval(function() {
                domParent.scrollTop++;
                if (domParent.scrollTop >= domParent.scrollHeight/2){
                    domParent.scrollTop = 0;
                }
            }, speed);
        };
    }

你可能感兴趣的:(js,setInterval)