我正在尝试使用 .fadeIn() 使我的导航悬停效果在过渡时看起来更加平滑。除了我得到的东西我只能描述为双重淡入淡出(进出再进)。
我是 JS 和 jQuery API 的新手,所以任何帮助表示赞赏。我是 CSS 的老专家,所以我仍然认为这些术语。在这个上,我添加了一个类来切换背景精灵 bg 位置。是我的 jQuery、我的 CSS 还是两者都有问题?
http://tuscaroratackle.com是有问题的实例 - 导航链接。
我正在尝试使用 .fadeIn() 使我的导航悬停效果在过渡时看起来更加平滑。除了我得到的东西我只能描述为双重淡入淡出(进出再进)。
我是 JS 和 jQuery API 的新手,所以任何帮助表示赞赏。我是 CSS 的老专家,所以我仍然认为这些术语。在这个上,我添加了一个类来切换背景精灵 bg 位置。是我的 jQuery、我的 CSS 还是两者都有问题?
http://tuscaroratackle.com是有问题的实例 - 导航链接。
代替mouseout
and mouseover
which fire even when enter a child,您可以使用.hover()
,如下所示:
$("#nav li").hover(function(){
$(this).find("a").addClass("hover").fadeIn();
}, function(){
$(this).find("a").removeClass("hover").fadeOut();
});
.hover()
映射到进入/离开孩子时不会mouseenter
触发的mouseleave
事件,这就是导致当前代码中出现双重动画的原因。
与问题没有直接关系,但页面上还有一些其他问题需要解决,包括 jQuery(最新的 1.4.x),然后 jQuery 1.2.6 稍后包含在验证插件的 1.5.1 版本中(现在最高为 1.7)。我会考虑升级您的验证插件并删除 jQuery 1.2.6 包含,因为它可能会在以后让您头疼(并且现在用户的页面更重)。
你可能想这样做,
$("#nav li").hover(function(){
$(this).find("a").fadeIn();
},
function(){
$(this).find("a").fadeOut();
}).find("a").addClass("hover").hide();
我隐藏a
在它上面,然后它会在悬停时显示。
你也可以设置display:none
上课hover
,这样你就不必.hide()
在那里打电话了。