2011-11-16 64 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");}