javascript - js轮播图的一个问题求助
大家讲道理
大家讲道理 2017-04-11 09:59:00
[JavaScript讨论组]



    
    
    demo



  • 1
  • 2
  • 3
  • 4

我最后一张图到第一张图的时候 比第一张到第二张慢 是怎么回事啊? 求指点

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
阿神

题主可以试着用Chrome断点调试试试,在timer部分。

1.前面的第1,第2图片都是每隔3s以后,执行start函数中的for循环。
2.当到了第3张图片,index=3的时候,在for循环中图片的偏移距离为3*length(一张图片的宽度),第四张图片出现,且第四个按钮为红色。之后index为4。
3.此时隔了3s以后,进入函数里面,在if判断中index为4,index被替换为0,跳出函数。
4.再隔了3s以后,进入函数里面,由于index为0,所以图片的偏移距离为0*length(一张图片的宽度),第一张图片出现,且第一个按钮为红色.

所以第四张图片跳到第一张图片的时候,实际上间隔了6s多。其他的都是3s多左右。


在题主的基础上修改了一下。原理就是当index为4的时候,不直接跳出去,而是直接变为0,这样再隔3s进来的时候,就不用判断可以直接处理index为0的状态了。

timer = setInterval(function () {
    img.style.left = -(imgs[0].offsetWidth * index) + 'px';
    for (var k = 0; k < nums.length; k++) {
        if (nums[k].index === index) {
            nums[k].className = 'a';
        } else {
            nums[k].className = 'b';
        }
    }
    index += 1;
    if(index == 4){
        index = 0;
    }
    }, 3000);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号