jQuery 动画悬停闪烁失控

发布于 2024-08-21 21:41:12 字数 336 浏览 8 评论 0原文

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

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

问题是,当我过快地经过拇指时,效果会持续闪烁一段时间...是否可以在 if 块中添加一些内容来防止这?

I'm using the following code as a hover-function on thumbnails:

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

The problem is that when I pass over a thumb too fast, the effect keeps blinking for a while... Is there something I can add to the if block to prevent this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦里南柯 2024-08-28 21:41:12

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

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

Use stop() to stop the current animation before starting a new one, it should work:

$(function (){      
    $('.button').hover(function() {  
        $(this).stop().animate({opacity: 0.7}, 'fast');
    },
    function(){
        $(this).stop().animate({opacity: 1}, 'fast' );
    });
});
┾廆蒐ゝ 2024-08-28 21:41:12

您可以强制效果不排队:

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

You can force effects not to be queued:

$(function() {
   $('.button').hover(function(){ 
        $(this).animate({opacity: 0.7}, { duration: 'fast', queue: false });
    },
    function(){
        $(this).animate({opacity: 1}, { duration: 'fast', queue: false } );
    }
);
})
作业与我同在 2024-08-28 21:41:12

hoverIntent 插件 就可以实现此目的,请检查一下。要使用默认选项应用它,您只需将:更改

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

为:

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

The hoverIntent plugin serves that purpose, check it out. To apply it with default options, you would simply change:

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

to:

$('.button').hoverIntent(function(){ 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文