繁体   English   中英

jQuery悬停开关问题

[英]jquery hover on and off issue

我正在使用jQuery隐藏和显示其父div悬停时的div。 它起作用了,但是唯一的问题是,当您真正快速地进行几次鼠标悬停时,它会一次又一次地进行淡入淡出,直到完成鼠标的次数与您上下移动鼠标一样。 请参阅: http : //api.jquery.com/hover/#hover-handlerIn-handler在此处显示第一个示例的演示,如果您将鼠标悬停在它们上真的非常快,然后看一下就可以明白我的意思。

这是我的代码,有没有办法使它更加用户友好并且不重复多次?

    $(function () { 
        $('.hide').fadeOut("fast"); 

        $( ".fourth" ).hover(
            function() {
                $( this ).find('.hide').fadeIn("slow"); ;
            }, function() {
                $( this ).find('.hide').fadeOut("slow"); 
            }

        );
        <div class="fourth"> 
            <div class="products">
                <h4 class="hide"><a href="#">Laern More</a></h4>
            </div>
        </div>

您需要使用.stop()函数来停止先前启动的动画:

$( ".fourth" ).hover(

    function() {
        $( this ).find('.hide').stop().fadeIn("slow"); ;
    }, function() {
        $( this ).find('.hide').stop().fadeOut("slow"); 
    }

);

有关更多信息,请参见jQuery .stop()文档

使用.stop()停止当前正在运行的动画,并使用.fadeToggle()保持代码简单。

$(".fourth").hover(function() {

   $(this).find('.hide').stop().fadeToggle("slow");

});

FIDDLE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM