2013-11-28 41 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