定时器问题

定时器问题

//鼠标离开启动定时器

main.onmouseout = function(){


//setInterval:间歇调用,3000:每隔三秒运行

timer = setInterval(function(){


index++; //len = 3;

//总共就三张图片,下标从0开始,最大为2,所以当index>=3时重置index=0(回到第一张图片的位置)

if(index>=len){

index=0;

}

//切换图片

changeImg();


},3000);

}

老师,请问我用间歇定时的时候index为什么不稳定,index从0马上跳到1和2,再隔3s左右跳到1.请问这是为啥呢?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

之前是将同学的代码粘贴到源码中进行测试,没有测出问题。之后只对你的局部代码进行测试就出现了你所描述的“图片轮播效果与index输出一样很不稳定”的效果。在你代码的基础上加上如下代码问题就解决了,也就是你后来自己找到的问题。同学自己动手解决问题的能力很棒的,加油,祝学习愉快~

 main.onmouseover = function(){
        // stopAutoPlay();
        if(timer){
       clearInterval(timer);
    }


慕粉0068017 2018-09-13 22:51:10

这个原因是因为我们在写鼠标离开图片的时候,设置了一次图片转换,后面为了实现图片可以自动轮播的时候我们有调用了一次,即main.onmouseout();,这这样这里面的两个都进行了图片切换,但是因为index只有一个,那么每一次这两个中的index改变之后,都要切换一次图片,就会造成图片轮播不稳定的情况;

chrismorgen 2018-09-07 11:25:26

测试同学的代码之后,并没有出现同学所说的情况,index值都是每隔3秒才增加一次,你是在什么场景下出现的你说的那种情况呢?可以具体描述一下。祝学习愉快~

http://img1.sycdn.imooc.com//climg/5b91ef180001e30415620686.jpg

  • 提问者 慕圣2241928 #1
    老师我用的是谷歌浏览器,使用的编辑器为subline,我的浏览器出现的这种情况,输出index时很不稳定,波动很大
    2018-09-07 14:31:27
  • 提问者 慕圣2241928 #2
    图片轮播效果与index输出一样很不稳定
    2018-09-07 14:34:57
  • 提问者 慕圣2241928 #3
    老师现在可以了,我在clearInterval()中没有添加timer
    2018-09-07 15:29:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师