2013-11-28 42 views
4

我是jQuery的新手,需要一些幫助。我使用這個jQuery腳本作爲推薦旋轉器,它像一個魅力,但我只需要做一個小小的調整。我需要它能夠暫停懸停,然後在鼠標離開div時重新啓動。我怎樣才能做到這一點?如何讓這個腳本暫停懸停?

這是我使用的腳本:

function fadeMyContent() { 
    $(".testimonial:first").fadeIn(1000).delay(3000).fadeOut(1000, 
     function() {  
      $(this).appendTo($(this).parent()); 
      fadeMyContent();  
     }); 
    } 

    fadeMyContent(); 
}); 

這裏是一個JSFiddle

+0

提供jsFiddle.com例子。 – Khamidulla

+0

這裏是一個小提琴鏈接http://jsfiddle.net/8HjE5/ – user3043983

+0

@ Pbk1303:請不要使用代碼跨度('像這樣')代碼中不是關鍵字的單詞。例如'var'或''可以在代碼範圍內,但'這真的不應該'。謝謝! –

回答

1

有一個插件,將提供您所需的所有功能,更可靠叫jQuery Cycle 2

它在初始化時提供了「暫停懸停」選項。

+0

如果你真的想自己做,請查看源代碼:) – FluffyJack

1

更改fadeMyContent(也稱爲銷燬功能)的定義,將其懸停在ul#testimonial-rotator上,然後在懸停時將其更改爲舊定義。我用setTimeout代替delay,因爲延遲是不可取消的。

$(document).ready(function() { 
var fadeMyContent; 
var t 
fadeMyContent = function() { 

    $(".rotate:first").fadeIn(1000) 
    t = setTimeout(function() { 
     $(".rotate:first").fadeOut(1000, 

     function() { 
      $(this).appendTo($(this).parent()); 
      fadeMyContent(); 
     }); 
    }, 3000) 
} 

var fadeMyContentDummy = function() { 

    $(".rotate:first").fadeOut(1000, 

    function() { 
     $(this).appendTo($(this).parent()); 
     fadeMyContent() 
    }); 
} 


fadeMyContent(); 

$('#testimonial-rotator').hover(function (e) 

{ 
    window.clearTimeout(t) 
    $('.rotate:first').clearQueue() 

    fadeMyContent = function() { 

     return false; 
    } 

}, 

function (e) 

{ 

    fadeMyContent = function() { 

     $(".rotate:first").fadeIn(1000) 
     t = setTimeout(function() { 
      $(".rotate:first").fadeOut(1000, 

      function() { 
       $(this).appendTo($(this).parent()); 
       fadeMyContent(); 
      }); 
     }, 3000) 
    } 

    fadeMyContentDummy() 

}) 


}); 

DEMO