2014-01-30 207 views
1

我有一个幻灯片,在3个不同的图像之间转换,在DIV标签分开。我希望当您将鼠标悬停在幻灯片上时,它应该停止,并且当您将鼠标从幻灯片放映中继续滚动时。停止在鼠标悬停幻灯片

的代码是在这里:

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; 
}); 

但幻灯片并未甚至停止,所以我绝对不正确的目标,或把代码放在正确的地方。

你能给我一些建议吗?

谢谢!

+0

使用队列和clearQueue,而不是停止 –

+2

能否请您分享一个小提琴? – Vinoth

+0

你在哪里调用这个函数? slideSwitch? – Kursion

回答

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/

+0

谢谢Irvin,正是我需要的。欣赏它:) – SmalliSax