jQuery:在悬停时暂停幻灯片放映

时间:2012-06-06 10:33:51

标签: jquery jquery-ui

所以我有这段代码:

$(document).ready(function(){
  $("#slideshow > div:gt(0)").hide();
     setInterval(function() {
     $("#slideshow > div:first")
          .fadeOut(1000)
          .next()
          .fadeIn(1000)
          .end()
          .appendTo("#slideshow");
},  3000);
});

100%正常工作.. 我在哪里添加幻灯片放映的.hover()功能以暂停悬停?

1 个答案:

答案 0 :(得分:5)

方法setInterval()返回一个intervalID,您可以使用clearInterval()清除当前间隔/超时。

您可以这样做:

$(document).ready(function() {

    var timer;

    $("#slideshow > div:gt(0)").hide();

    $("#slideshow")
        // when mouse enters, clear the timer if it has been set
        .mouseenter(function() {
            if (timer) { clearInterval(timer) }
        })
        // when mouse goes out, start the slideshow
        .mouseleave(function() {
            timer = setInterval(function() {
                $("#slideshow > div:first")
                    .fadeOut(1000)
                    .next()
                    .fadeIn(1000)
                    .end()
                    .appendTo("#slideshow");
            }, 3000);
        })
        // trigger mouseleave for initial slideshow starting
        .mouseleave();

});​

DEMO