快速鼠标悬停时的jQuery幻灯片菜单抖动行为
因此,我成功地为菜单创建了一个setTimout slideUp/Down函数,它工作得非常好——但在某些情况下,当用户悬停在链接上,以及他们的子链接上时,它会快速地上下滑动——我知道这个问题很典型,但我尝试了不同的方法,但都没有成功 这里是一个工作演示-你可以看到,如果你把鼠标放在链接上,该功能会发疯 使用.stop1,1与.stop true相同,true将有助于清除某些动画构建:快速鼠标悬停时的jQuery幻灯片菜单抖动行为,jquery,slidedown,slideup,Jquery,Slidedown,Slideup,因此,我成功地为菜单创建了一个setTimout slideUp/Down函数,它工作得非常好——但在某些情况下,当用户悬停在链接上,以及他们的子链接上时,它会快速地上下滑动——我知道这个问题很典型,但我尝试了不同的方法,但都没有成功 这里是一个工作演示-你可以看到,如果你把鼠标放在链接上,该功能会发疯 使用.stop1,1与.stop true相同,true将有助于清除某些动画构建: jQuery('.nav.mainmenu > li').each(function() {
jQuery('.nav.mainmenu > li').each(function() {
var t = null;
var $this = jQuery(this);
var result = jQuery('#result');
$this.hover(function() {
t = setTimeout(function() {
if($this.find('ul').length > 0) {
result.stop(1,1).slideDown(200, function() { // HERE
if($this.is(':visible')) {
$this.find('ul').show();
}
});
}
t = null;
}, 300);
}, function() {
if (t) {
clearTimeout(t);
t = null;
} else {
$this.find('ul').hide(0);
result.slideUp(333, function() {
$this.find('ul').hide(0);
});
}
});
});
使用.stop1,1与.stop true相同,true将有助于清除某些动画构建:
jQuery('.nav.mainmenu > li').each(function() {
var t = null;
var $this = jQuery(this);
var result = jQuery('#result');
$this.hover(function() {
t = setTimeout(function() {
if($this.find('ul').length > 0) {
result.stop(1,1).slideDown(200, function() { // HERE
if($this.is(':visible')) {
$this.find('ul').show();
}
});
}
t = null;
}, 300);
}, function() {
if (t) {
clearTimeout(t);
t = null;
} else {
$this.find('ul').hide(0);
result.slideUp(333, function() {
$this.find('ul').hide(0);
});
}
});
});
如果已设置动画但未设置动画,则还可以检查结果是否按如下方式设置动画:
if($(result).is(':animated')){
return false;
}
如果已设置动画但未设置动画,则还可以检查结果是否按如下方式设置动画:
if($(result).is(':animated')){
return false;
}
停止1 eh??我不知道你能做什么that@JeffJones现在你知道了!希望是有用的。当你从一个菜单项转到另一个菜单项时,如果你不带着mouse@Geeo符合事实的重新编辑。谢谢你指出。有人在Firefox中测试过这个吗?得到一些奇怪的结果-谢谢你的帮助!!!停止1 eh??我不知道你能做什么that@JeffJones现在你知道了!希望是有用的。当你从一个菜单项转到另一个菜单项时,如果你不带着mouse@Geeo符合事实的重新编辑。谢谢你指出。有人在Firefox中测试过这个吗?得到一些奇怪的结果-谢谢你的帮助!!!当@Geeo指出问题时重新编辑我的答案当@Geeo指出问题时编辑我的答案