设置了清除定时器,为什么但是鼠标放在上面还是会继续轮播?
function byId(id){
return typeof(id) ==="string"? document.getElementById(id):id;
}
var index =0,
timer=null;
pics =document.getElementsByClassName('banner-slide')
len=pics.length;
console.log(len);
function slideImg(){
var main=byId("main");
main.onmouseover=function(){
if(timer) clearInterval(timer);
}
main.onmouseout=function(){
var timer =setInterval(function(){
index++;
if(index>=len){
index=0;
}
changeImg(index);
},3000);
}
main.onmouseout();
}
function changeImg(){
for(var i=0;i<len;i++){
pics[i].style.display='none';
}
pics[index].style.display='block';
}
slideImg();
正在回答
main.onmouseout=function(){
var timer =setInterval(function(){
index++;
if(index>=len){
index=0;
}
这一段里 你定义了一个局部的timer 然后把定时器赋值给了他
但是你清除定时器的时候 清除的是全局的timer
所以局部的定时器并没有被清除
所以会继续播放
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10205 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星