2012-07-05 162 views
1

我在這裏的滑塊有問題。我想在懸停滑塊時暫停它。不幸的是,我不明白這一點。有任何想法嗎?更新鏈接的jsfiddle:http://jsfiddle.net/fZYK4/jquery暫停懸停滑塊

$(function(){ 
    var slide = $('.productSlide'); 
    $('.productSlider ul').removeClass('displaynone'); 

    slide.not(':first').hide(); 
    $('.productSlider ul a:first').addClass('active'); 
    $('.productSlider ul a').on('hover', function(e){ 
     e.preventDefault(false); 
     var target = $(this).attr("href"); 
     $('.productSlider ul a').removeClass('active'); 
     $(this).toggleClass('active'); 
     slide.not('#'+target).hide(); 
     $(target).show(); 
    }); 
    var counter = 0; 
     if(slide.length > 1){   
      slide.hide(); 
      slide.first().show(); 
      setInterval(function() { 
       slide.eq(counter).hide(); 
       counter++; 
       if (counter == slide.length) { 
        counter = 0; 
       } 
       slide.eq(counter).show(); 
       $('.productSlider ul a').removeClass('active'); 
       $('.productSlider ul a').eq(counter).toggleClass('active'); 
      }, 5000);   
     }; 
}); 
+0

提交jsfiddle.net版本 – darkAsPitch 2012-07-05 16:00:49

+0

你得到它的工作 – sabithpocker 2012-07-05 16:36:28

回答

2

您必須分配要設置

var counter = 0; 
var myInterval; 
if (slide.length > 1) { 
    slide.hide().first().show(); 
    myInterval = setInterval(function() { 
    // ... and so on 

的間隔和清除它懸停

$('.productSlider ul a').on('mouseenter', function(e){ 
    clearInterval(myInterval); 
    // ... and so on 

如果要重置,如果用戶懸停你最好包裝這個功能:

function doAnimation() { 
      return setInterval(function() { 
       slide.eq(counter).hide(); 
       counter++; 
       if (counter == slide.length) { 
       counter = 0; 
       } 
       slide.eq(counter).show(); 
       $('.productSlider ul a').removeClass('active'); 
       $('.productSlider ul a').eq(counter).toggleClass('active'); 
      }, 5000); 
     } 

,並調用它,你想讓它開始,例如在鼠標離開:

$('.productSlider ul a').on('mouseleave', function(e){ 
    myinterval = doAnimation(); 
+0

包裝在一個函數setInterval的邏輯,然後做setAnimation(真)和setAnimation(false)開始/停止動畫 – sabithpocker 2012-07-05 16:06:57

+0

@sabithpocker有效點那裏 – 2012-07-05 16:08:26

+0

看起來像分裂懸停到mouseenter和mouseleave將呈現答案完成,良好的實現與返回setInterval ID – sabithpocker 2012-07-05 16:17:01