下拉菜单在我到达链接之前消失了

3
我该如何延迟菜单消失的时间?我希望能延迟几毫秒或几秒钟。在JS中编辑 fadesettings: {overduration: 350, outduration: 2000} 只会改变动画速度,但这不是我的需求。请查看此JSFiddle查看JS、CSS和HTML代码。感谢您的帮助!
P.S. 关于您看到的 top:80px 的间隙,那是我故意放置的,因为这是我网站设计的样式,所以我想要这个间隙。
1个回答

2
您可以使用setTimeout函数在调用函数前添加延迟。
如果您想要延迟菜单的淡出效果,可以这样做:
$this.children("ul:eq(0)").fadeOut(jquerycssmenu.fadesettings.outduration);

你可以做到
setTimeout(function() { $this.children("ul:eq(0)").fadeOut(jquerycssmenu.fadesettings.outduration)
}, 2000);

将呼叫延迟2秒。

请注意,我在您的fiddle中缓存了$(this)选择器,以便仍然可以访问该变量。

http://jsfiddle.net/KB5Ve/

编辑: 在fiddle上添加了注释:http://jsfiddle.net/DBvq7/


我有点困惑。您能否在代码中添加注释,以便我知道您在哪里添加了新的脚本?:( - Yaw Ansong Snr
我在这个新的 JSFiddle 中添加了一些注释,你可以在这里找到它:http://jsfiddle.net/DBvq7/。 - Hugo Migneron
但是,当setTimeOut到达时,菜单会消失。例如,只需查看此示例:http://jsfiddle.net/KB5Ve/1/;当您悬停时,菜单将消失。我将时间设置为200,因为我不希望导航停留很长时间。 - Yaw Ansong Snr
然后,您必须测试是否悬停在子元素上。这个答案展示了如何做到:https://dev59.com/em855IYBdhLWcg3wxHcq 但是,除非您这样做是为了学习,否则真的没有理由从头开始编写菜单,因为有很多菜单可以很好地完成您想要的工作。 - Hugo Migneron
我不喜欢Superfish的原因是它在IE7上搞砸了z-indexing的东西。我还没有找到解决方法。你能推荐其他的下拉菜单吗?不过还是谢谢你的帮助。 - Yaw Ansong Snr
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接