2011-10-21 213 views
3

我正在使用jquery脚本淡入淡出一大堆<p>....</p>标签,它工作正常,但我需要动画来暂停鼠标悬停和恢复鼠标!有没有我可以添加到脚本来处理这个问题的方法?在鼠标悬停暂停jquery动画

jQuery脚本:

$(function() { 
    function InOut(elem) 
     { 
     elem.delay() 
     .fadeIn(600) 
     .delay(5000) 
     .fadeOut(600, 
      function(){ 
       if(elem.next().length > 0) 
        { InOut(elem.next()); } 
       else 
        { InOut(elem.siblings(':first')); } 

     } 
    ); 
} 

$('#anidiv p').hide(); 
InOut($('#anidiv p:first')); 
}); 

HTML

<div id="anidiv"> 
<p>Pause jquery animation on mouseover...</p> 
<p>Pause jquery animation on mouseover...</p> 
<p>Pause jquery animation on mouseover...</p> 
<p>Pause jquery animation on mouseover...</p> 
</div> 

http://jsfiddle.net/EDbjw/

+0

我会使用这个插件:http://plugins.jquery.com/project/Pause-Resume-animation – Ivan

回答

2

而不是检查的知名度,继续,你可以把一些 类或任何适合你区分当前显示元素来自其他人。

$('#anidiv p').hide(); 
InOut($('#anidiv p:first')); 

function InOut(elem) { 
    elem.delay().fadeIn(600).delay(5000).fadeOut(600, function() { 
     if (elem.next().length > 0) { 
      InOut($(this).next()); 
     } 
     else { 
      InOut($(this).siblings(':first')); 
     } 

    }); 
} 

$('#anidiv p').mouseover(function() { 
    $(this).stop(true, true); 
}); 
$('#anidiv p').mouseout(function() { 
    if ($(this).is(":visible") == true) { 
     InOut($(this)); 
    } 
}); 

stop animation on mouseover

+0

这取消,但不会暂停和恢复,动画 – Muhd

+0

是的,它会重新启动时间。你是否等待它继续? – zdrsh

+0

我不认为这是提问者想要的。我不想暂停一系列动画,而是想象在中间暂停一个动画。鼠标悬停时,不透明度应冻结在当前状态。 – Muhd

1

This plugin会给jQuery的暂停和恢复单个动画的功能。为了暂停一系列动画,zdrsh的答案应该没问题。

+0

我试图查看您的链接@Muhd时出现此错误对不起,196.201.51.19已被http:BL灰名单。 您可以在http://drupal.org/httpbl/whitelist上尝试列入白名单。 –