jQuery:停止在多次翻转时重复动画?

Posted

技术标签:

【中文标题】jQuery:停止在多次翻转时重复动画?【英文标题】:jQuery: Stop repeating animation on multiple rollovers? 【发布时间】:2012-02-25 04:20:05 【问题描述】:

我无法停止动画...如果我滚动链接以显示一个框 5 次然后脱落..“显示”效果发生 5 次...当我脱落时我只想要它显示一次....

基本上它似乎陷入了一个循环......

任何想法如何停止多个实例?

jQuery(document).ready(function()
    jQuery('.ttip').hover(
        function() 
            var offset = jQuery(this).offset();
            console.log(offset)
            var width = jQuery(this).outerWidth();
            var tooltipId = jQuery(this).attr("rel");
            jQuery('#tooltip-container').empty().load('tooltips.html' + tooltipId).fadeIn(500);
            jQuery('#tooltip-container').css(top:offset.top, left:offset.left + width + 10).show();
        ,
        function() 
          jQuery('#tooltip-container').fadeOut(500);
        );
);

【问题讨论】:

【参考方案1】:

你应该使用stop(true)

见http://api.jquery.com/stop

【讨论】:

【参考方案2】:

正如Stefan 所说,使用您的代码强制动画以 stop(true) 跳转到结尾,就像这个示例一样:

jQuery(document).ready(function()
jQuery('.ttip').hover(
    function() 
        var offset = jQuery(this).offset();
        console.log(offset)
        var width = jQuery(this).outerWidth();
        var tooltipId = jQuery(this).attr("rel");
        jQuery('#tooltip-container').empty().load('tooltips.html' + tooltipId).stop(true).fadeIn(500);
        jQuery('#tooltip-container').css(top:offset.top, left:offset.left + width + 10).show();
    ,
    function() 
      jQuery('#tooltip-container').stop(true).fadeOut(500);
    );
);

【讨论】:

以上是关于jQuery:停止在多次翻转时重复动画?的主要内容,如果未能解决你的问题,请参考以下文章

悬停时继续 CSS3 关键帧动画/悬停时停止重复

jquery 实现重复点击一个元素时不重复执行效果

在月亮上停止 css 关键帧翻转动画,如月相

如何在jQuery中停止动画,但是当动画首先完成时

Jquery旋转,在mouseenter上运行,在mouseout上停止

悬停时的 jQuery 动画 |非常快的传球,停止动画