javascript - 用jQuery写的图片轮播为何停止定时器只能停止一次?
怪我咯
怪我咯 2017-04-10 18:11:05
[JavaScript讨论组]

用jQuery写的图片轮播为何只有初次鼠标进入才能停止定时器?给我的感觉是后面无法停止自动播放,而且播放速度加快,调试很久不知问题出现在哪。
附上demo网址参考:http://huzerui.com/slideBox
js主要代码如下:

$(function () {
    var stage=$('.pic-stage');
    var pic=$('.pic-box');
    var panel=$('.panel');
    var panelLi=$('.panel li');
    //获取单张图片的大小
    var picWidth=parseInt($('.pic-box li:eq(0)').css('width'));
    //获取图片的个数
    var size=panelLi.size();
    /*根据导航条li的个数实现居中布局
    *采用width()方法获取的宽度不包括margin
    */
    var panelWidth=panel.width();
    //获取的margin包含上下边距和左右边距,用split()方法取得margin左右的数值
    var margin=parseInt(panelLi.css('margin').split(' ')[1]);
    var iNow=0;
    pic.css('width',picWidth*size);
    panel.css('margin-left',-(panelWidth+margin*size)/2);
    for(var i=0;i<size;i++){
        panelLi.eq(i).attr('index',i);
    }

    //导航条事件
        panelLi.hover(function() {
        iNow=$(this).attr('index');
        pic.stop().animate({left:(-iNow*picWidth)+'px'});    
    });

    //自动播放
    function autoPlay(){
        iNow++;
        if (iNow===size) {
            iNow=0;
        }    
        pic.stop().animate({left:(-iNow*picWidth)+'px'});
    }
    var timer=setInterval(autoPlay,1000);

    //鼠标悬浮停止定时器
    stage.hover(function() {
        clearInterval(timer);
    }, function() {
        setInterval(autoPlay,1000);
    });

});
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
黄舟
//鼠标悬浮停止定时器
    stage.hover(function() {
        clearInterval(timer);
    }, function() {
        setInterval(autoPlay,1000);    //这里你的第二次hover事件就找不到上次的timer了, 因此你这里要定义一个timer = setInterval();
    });
ringa_lee

timer = setInterval(autoPlay,1000); 这样看看

   var timer=setInterval(autoPlay,1000);

    //鼠标悬浮停止定时器
    stage.hover(function() {
        clearInterval(timer);     //这个timer只是初始化的值
    }, function() {
        setInterval(autoPlay,1000);
    });
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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