firefox中的jquery悬停bug?

时间:2011-11-16 21:22:56

标签: jquery firefox hover jquery-animate

我使用.hover()和animate()创建了一个缩略图菜单,其中包含一些具有悬停()不透明效果的图像。

我只遇到Firefox 8.0(mac或pc)的问题,所有其他浏览器都经过测试并且运行正常。

当我将鼠标悬停在菜单上时,它应该出现,当我将鼠标悬停时,它应该再次隐藏。如果我将鼠标悬停在屏幕左侧的缩略图上,则悬停()过程会卡住并永远循环。如果我将鼠标悬停在没有缩略图的右侧,则可以正常工作。

你可以在这里看到它来理解错误循环 - >  http://www.econtentsys.gr/affiliate/xenosk/temp/amigdalos/wedding.php

我的代码:

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

任何想法为什么它只会卡在Firefox中?它有什么办法吗?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用jQuery的stop()方法来阻止动画队列?类似的东西:

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

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

答案 1 :(得分:0)

我使用hoverIntent插件而不是默认的.hover()使用hoverIntent cherne.net/brian/resources/jquery.hoverIntent.html使用hoverIntent插件修复它,但是它有一点点延迟似乎绕过了错误的循环所以它可以正常工作到。

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