开发需求:要求动态添加滚屏数据,多次初始化;
遇到问题:使用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);
};
}