Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jquery中克服这个问题以获得动画悬停效果?_Javascript_Jquery_Html_Tooltip_Jquery Hover - Fatal编程技术网

Javascript 如何在jquery中克服这个问题以获得动画悬停效果?

Javascript 如何在jquery中克服这个问题以获得动画悬停效果?,javascript,jquery,html,tooltip,jquery-hover,Javascript,Jquery,Html,Tooltip,Jquery Hover,在下面的链接中,有一个示例。如果我们将鼠标悬停在特定列表中,工具提示将出现并消失,这里没有问题。如果我们在特定列表中继续上下移动鼠标,则工具提示会出现几次(例如,如果我们移动鼠标十次,则工具提示也会出现十次) 如何克服这个问题(即,如果我们将特定列表悬停几次,工具提示应该只出现一次) 我尝试将脚本更改为(通过添加stop()函数) 但它失败了。使用$(“.menu li”)。悬停使工具提示显示一次。您只能指定一个悬停事件,当出现鼠标指针时,该事件将触发。,您不能指定类似“只有在前一个悬停在5秒之

在下面的链接中,有一个示例。如果我们将鼠标悬停在特定列表中,工具提示将出现并消失,这里没有问题。如果我们在特定列表中继续上下移动鼠标,则工具提示会出现几次(例如,如果我们移动鼠标十次,则工具提示也会出现十次)

如何克服这个问题(即,如果我们将特定列表悬停几次,工具提示应该只出现一次)

我尝试将脚本更改为(通过添加stop()函数)


但它失败了。

使用$(“.menu li”)。悬停使工具提示显示一次。

您只能指定一个悬停事件,当出现
鼠标指针时,该事件将触发。
,您不能指定类似“只有在前一个悬停在5秒之前触发时,此悬停才会触发”。您可以使用该插件指定仅当鼠标在鼠标内停留0.5秒时才触发悬停。

使用
.stop(true,true)
停止动画

$(document).ready(function(){
    $(".menu a").hover(function() {
        $(this).next("em").stop(true, true).animate({opacity: "show", top: "-75"}, "slow");
    }, function() {
        $(this).next("em").stop(true, true).animate({opacity: "hide", top: "-85"}, "fast");
    });
});
解释:

.stop(true,true)
将删除排队的动画并立即完成当前动画

clearQueueA布尔值,指示是否将排队的动画作为 好。默认为false

jumpToEndA布尔值,指示是否完成当前 立即播放动画。默认为false


您正在将悬停事件附加到。当您尝试不断向上移动鼠标时,表示您没有在“a”上悬停。这就是为什么工具提示会消失。如果将事件附加到li,因为工具提示是li的一部分,当您将鼠标移到工具提示上时,工具提示不会显示。您能解释一下此脚本中的函数(即“.stop(true,true)”是什么吗?
$(document).ready(function(){
    $(".menu a").hover(function() {
        $(this).next("em").stop(true, true).animate({opacity: "show", top: "-75"}, "slow");
    }, function() {
        $(this).next("em").stop(true, true).animate({opacity: "hide", top: "-85"}, "fast");
    });
});
.stop( [clearQueue] [, jumpToEnd] )