jQuery Hover Toggle Fix

时间:2012-05-18 03:45:35

标签: jquery

我有一个产品网格,在每个单独的悬停上,将使用图像/添加到购物车按钮切换到div。但是,每次我快速将鼠标悬停在物品上时,它们都会闪烁。

这是demo

是否有更好的jQuery方法可以在没有闪存的情况下切换单个网格项的相应悬停div

2 个答案:

答案 0 :(得分:3)

只需添加$.stop()即可阻止其排队更多动画:

$(".grid li").hoverIntent(
    function(){
        $(".grid-hover", this).stop().delay(500).fadeIn();
    },
    function(){
        $(".grid-hover", this).stop().fadeOut();
    }            
);

要完美地完成这一点有点困难,但我相信在这个实例中$.hoverIntent()可能是比原生$.hover()更好的工具。

答案 1 :(得分:0)

这似乎更接近于更舒适的UI体验:

$(document).ready(function() {

    $('.grid li').hover(function(){

        $('.grid-hover').stop();
        $('.grid-hover').fadeOut(500);
        $('.grid-hover', this).fadeIn(500);

    }, function(){

        $('.grid-hover', this).fadeOut(500);

    });

});

不完美..可以肯定。 on hover jquery事件很难做到正确;特别是动画。必须仔细遵循事物的逻辑和时间。我会使用.stop() jQuery函数,它会停止元素上的动画;以及setTimeout() JavaScript函数。