在鼠标悬停时停止幻灯片放映

时间:2014-01-30 10:50:12

标签: javascript jquery html mouseover

我有一个幻灯片,可以在DIV标记中分隔的3个不同图像之间切换。我想当你将鼠标悬停在幻灯片上时它应该停止,当你将鼠标从幻灯片放开时,它应该继续滚动它。

代码在这里:

function slideSwitch() {
    var $active = $('#slideshow3 div.active3');
    if ($active.length == 0 ) $active = $('#slideshow3 div:last');

    var $next = $active.next().length ? $active.next() : $('#slideshow3 div:first');
    $active.addClass('last-active3')
    .animate({opacity : 0.0}, 1000);
    $next.css({opacity: 0.0})
        .addClass('active3')
        .animate({opacity: 1.0}, 1000, function() {
            $active.removeClass('active3 last-active3');
        });
}

我试过让初学者做这样的事情:

$("#slideshow3").mouseover(function(){
    $(this).stop();
    return false;
});

但幻灯片显示甚至没有停止,所以我绝对没有正确定位它或将代码放在正确的位置。

你能给我一些建议吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将间隔参考存储在变量中,然后当您悬停图像时停止间隔并在退出时启动它。

代码:

var theInterval;

function startSlide() {
    theInterval = setInterval(slideSwitch, 5000);
}

function stopSlide() {
    clearInterval(theInterval);
}

$(function () {
    startSlide();
    $('#slideshow DIV').hover(function () {
        stopSlide();
    }, function () {
        startSlide();
    })
});

演示:http://jsfiddle.net/mucv5/