jquery悬停效果,子菜单消失
我使用 wordpress 动态创建导航栏,并使用 jquery 将子菜单附加到导航栏。使用 jquery,当您将鼠标悬停在第二个菜单项上时,子菜单会向下动画并淡入。我在这里创建了一个 jsfiddle: http ://jsfiddle.net/NWpBB/
它可以工作,但效果不佳。如果将鼠标悬停在子菜单中右上角的列表项上,它就会消失。看起来也有点毛病。考虑到上述 js 小提琴链接上的 jquery,我知道如何改进此悬停效果的功能吗?
这是jquery:
$("#menu-nav li:nth-child(2) a").append('<span id="dropdown"></span');
$(".hoverMenu").css({"opacity":"0"});
$(".hoverMenu").appendTo("#menu-nav li:nth-child(2)");
$("#menu-nav li:nth-child(2)").hover(function(){
$(".hoverMenu").stop().animate({
top: '38',
opacity: '1'
}, 500);
}, function(){
$(".hoverMenu").stop().animate({
top: '-290',
opacity: '0'
}, 500);
});
I'm using wordpress to dynamically create a navbar, and jquery to append a submenu to the nav-bar. Using jquery, when you hover over the second menu item, the submenu animates down and fades in. I created a jsfiddle here: http://jsfiddle.net/NWpBB/
It works, but not well. If you hover over the top right list item in the submenu, it disappears. It also seems a bit glitchy. Any idea on how I can improve the functionality of this hover effect given the jquery on the above js fiddle link?
Here is the jquery:
$("#menu-nav li:nth-child(2) a").append('<span id="dropdown"></span');
$(".hoverMenu").css({"opacity":"0"});
$(".hoverMenu").appendTo("#menu-nav li:nth-child(2)");
$("#menu-nav li:nth-child(2)").hover(function(){
$(".hoverMenu").stop().animate({
top: '38',
opacity: '1'
}, 500);
}, function(){
$(".hoverMenu").stop().animate({
top: '-290',
opacity: '0'
}, 500);
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题已解决: http://jsfiddle.net/NWpBB/1/
您只想访问直接#menu-nav 的“li”子级因此添加了“>”之间。
您还有另一个问题:当您将鼠标悬停在 0 不透明度的子菜单上时,它开始出现,因为 jQuery 告诉它。你应该让它显示:无,而不仅仅是隐藏。
编辑:最后一个解决了http://jsfiddle.net/NWpBB/4/
Problem solved : http://jsfiddle.net/NWpBB/1/
You wanted to access only the direct "li" child of #menu-nav hence adding a ">" in between.
You have an other glitch : when you hover over the 0-opacity submenu, it starts to appear because it is told to by jQuery. You should make it display:none, not only hidden.
EDIT : last one solved http://jsfiddle.net/NWpBB/4/