jQuery动画悬停闪烁失控

Posted

技术标签:

【中文标题】jQuery动画悬停闪烁失控【英文标题】:jQuery animated hover blinking out of control 【发布时间】:2011-01-17 08:29:50 【问题描述】:

我在缩略图上使用以下代码作为悬停功能:

$(function ()      
  $('.button').hover(function()   
    if ($(this).is(":not(animated)")) 
      $(this).animate(opacity: 0.7, 'fast');
    
  ,
  function() 
    $(this).animate(opacity: 1, 'fast' );
  );
);

问题是,当我过快过大拇指时,效果会持续闪烁一段时间......我可以在 if 块中添加一些东西来防止这种情况发生吗?

【问题讨论】:

【参考方案1】:

使用stop() 在开始新动画之前停止当前动画,它应该可以工作:

$(function ()      
    $('.button').hover(function()   
        $(this).stop().animate(opacity: 0.7, 'fast');
    ,
    function()
        $(this).stop().animate(opacity: 1, 'fast' );
    );
);

【讨论】:

【参考方案2】:

您可以强制效果不排队:

$(function() 
   $('.button').hover(function() 
        $(this).animate(opacity: 0.7,  duration: 'fast', queue: false );
    ,
    function()
        $(this).animate(opacity: 1,  duration: 'fast', queue: false  );
    
);
)

【讨论】:

【参考方案3】:

hoverIntent plugin 用于此目的,请查看。要使用默认选项应用它,您只需更改:

$('.button').hover(function() 

到:

$('.button').hoverIntent(function() 

【讨论】:

谢谢你的答案......宁愿不再需要任何插件。所以我会选择第二个答案:)

以上是关于jQuery动画悬停闪烁失控的主要内容,如果未能解决你的问题,请参考以下文章

Css悬停动画闪烁/循环

带有悬停的css闪烁动画

CSS @keyframe 动画在悬停时闪烁

CSS @keyframes 光标动画在悬停时闪烁

悬停效果闪烁的 CSS 动画,在 FF 中未正确显示

鼠标悬停时褪色的jQuery幻灯片闪烁/队列问题(slideSwitch.js)