以下代码成功运行,只是menu slideDown仅在第二次悬停在我的菜单项上时才运行。第一次出现时,它立即出现,就像第一次没有应用任何jQuery一样。
$(document).ready( function() {
// animate dropdown menus
$('#wp-admin-bar ul li').hover(
function () {
//show submenu
$('ul', this).slideDown(180);
},
function () {
//hide submenu
$('ul', this).slideUp(180);
}
);
});
奇怪的是如果我加上
$(this).addClass("hover");
类被立即添加-在第一次悬停时。
我对此有点困惑。
发布于 2010-08-06 04:33:55
好的:$(this).addClass("hover");
在方程式中的作用是什么?因为听起来是这样的:第一个mouseIn通过CSS显示div,然后使用jQuery代码就可以了。除非用元素的style
属性设置了display
,否则隐藏和显示的动画不起作用。
发布于 2011-01-28 13:08:45
我在谷歌上也找不到任何我认为很常见的问题,我猜很多人在他们的下拉菜单中使用显示或可见性变化,而不是高级的左/右偏移(兼容性明智)。
无论如何,这是一个更优雅的解决方案,它将导致所有的子菜单也在第一时间工作。无需更改任何现有代码(如添加display:block)。
$("#nav li").hover(
function() {
$("ul", this).slideUp(0).slideDown(180);
},
function() {
$("ul", this).slideUp(180);
}
);
意思是:-选择所有li元素-在安莉鼠标悬停时,快速SlideUp任意子ul元素,然后以人体动画速度滑下它- On mouseout SlideUp以人体动画速度
https://stackoverflow.com/questions/3418728
复制相似问题