2012-06-17 154 views
1

My CodejQuery的懸停和動畫

我有一個div,當你將鼠標懸停在它顯示了不同的瀏覽器,如果他們的支持,在CSS完成。不過,我也想讓他們用我正在工作的jquery生成動畫。

但是,如果將鼠標移到懸停區域上並將鼠標懸停在其上方,則該動畫將不會重新觸發。您必須將鼠標移動很遠,然後將鼠標懸停在上面。重新找回這個問題的最好方法是將鼠標放在它的上面,並快速將鼠標懸停在其上並再次出現幾次。

我懷疑,原因是jQuery仍然認爲鼠標已經結束,即使css隱藏它,並說它不是。我還認爲,將鼠標移到遠處是與時間有關而不是距離,但又不確定。我也試過.mouseover(),.hover()和.mouseenter(),而.mouseenter()似乎表現得最好。

這是否涉嫌行爲?這並不完全是'破壞',但我希望這種效果起作用。如果這是預期的行爲,可能css3動畫能夠複製我想要的效果?

另外作爲一個方面說明,如果您查看小提琴,我應該考慮添加任何其他瀏覽器? (個人觀點不錯,但更多的,如果任何瀏覽器已經悄悄變得更受歡迎)

回答

2

就可以解決這個加入終止()

$(this).stop().animate({'width':'25px'},500); 

此處瞭解詳情:http://api.jquery.com/stop/

+0

哦,所以它可能是一個與動畫有關的時間問題?非常感謝,現在工作好多了:) – Fewfre

0

我認爲這如果你還沒有停止最後一個動畫,經常會發生,我認爲你可以像這樣解決這個問題。

$(this).stop().animate(/*your animation*/); 

有時那是後話,你應該檢查所有的元素不只是在動畫,因爲我記得曾與已停止只是擊中進入JavaScript驗證某些用戶的問題(當我與vtigerCRM的工作是)。

此鏈接有一個關於它http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup

一些資料得出結論,我認爲是有一堆不知名瀏覽器,如綠,傲遊,並在像Konqueror和其他一些Linux中一些人。