2011-11-16 62 views
0

我创建了一个缩略图菜单与包含部分图片悬停()不透明度效果以及.hover()和动画()。jquery悬停在Firefox中的错误?

我有火狐8.0(无论是Mac或PC)的问题而已,所有其他浏览器那里测试,做工精细。

对我所付出的是,当我将鼠标悬停在菜单它应该出现,当我徘徊了它应该再次隐藏。如果我将鼠标悬停在缩略图悬停的屏幕左侧()上,程序就会卡住并永久循环。如果我将鼠标悬停在没有缩略图的右侧,它可以正常工作。

你可以在这里看看就明白了误差环路 - >

而且我的代码:

$('#bottomthumbsmenu').hover(function() { 
$('#bottomthumbsmenu').animate({"bottom": "+=80px"}, "slow"); 
}, function() { 
$('#bottomthumbsmenu').animate({"bottom": "-=80px"}, "slow"); 
}); 

任何想法,为什么它卡住仅在Firefox?围绕它有什么办法吗?

预先感谢您。

回答

1

您是否尝试过使用jQuery的stop()方法,以防止动画队列?例如:

$('#bottomthumbsmenu').hover(function() { 
    $(this).stop().animate({"bottom": "+=80px"}, "slow"); 
}, function() { 
    $(this).stop().animate({"bottom": "-=80px"}, "slow"); 
}); 

另外,也许你已经注意到了,但只有当你将鼠标悬停在拇指上时,动画才会进入循环。如果将光标保持在屏幕的右侧,没有拇指,则一切正常。你可能想看看这个。

+0

我尝试了.stop方法,但它在第一个动画中再次出现错误,所以它在页面内获得越来越高的菜单。是的,我知道它在大拇指上的错误,所以想到的唯一方法是让它们隐藏起来,并在条的动画过程之后显示它们。但客户会说实话,这会让人感到怪异。 –

0

那么我修复它使用hoverIntent插件而不是默认的.hover()使用hoverIntent cherne.net/brian/resources/jquery.hoverIntent.html与一个小的延迟它似乎绕过了错误的循环,所以它的工作原理应该。

$("#bottomthumbsmenu").hoverIntent({ 
over: makeTall, 
timeout: 500, 
out: makeShort 
}); 
function makeTall(){ $(this).animate({"bottom": "+=80px"}, "slow");} 
function makeShort(){ $(this).animate({"bottom": "-=80px"}, "slow");}