2013-10-14 24 views
-2

目前正在創建一些東西,我在插入一個鼠標動畫。我首先通過jQuery開始做這件事,但過了一會兒,我覺得用CSS很容易做到這一點。最後,這只是一個懸停動畫。在這一點上,我想知道:「我可以做jQuery懸停動畫(mouseenter(); mouseleave()),以及CSS:懸停......用法的區別在哪裏?」Jquery mouseenter()比CSS <>更好:懸停?

這就是我的問題。

我能想出的唯一事情是在一個情況下,當鼠標離開比原來的狀態hover'ed超過項目應該有不同的狀態。如'已見過'功能。 即

Regular: opacity:80; 
:hover opacity:100; 
mouseleave opacity:10. 

誰能給一個答案?

謝謝!

回答

2

這很簡單:如果您需要執行CSS無法解決的操作,請使用JS。

這些行動可能是:

  • AJAX

  • 計算

  • 在DOM

  • 完全改變其他元素...

這個列表可以永遠持續下去。

有一個例外,要注意的是,你可以用JS如果你想實現瀏覽器的兼容性(如果在所有的瀏覽器(S)的版本不支持您的特定CSS屬性)。

1

雖然我投票結束以意見爲基礎,但是我建議JavaScript是必需的,當擱置項目應該影響祖先元素的兄弟或先前的兄弟變更爲覆蓋項目。

如果用例是簡單地暫時不同呈現徘徊項目,堅持使用CSS(更容易,瀏覽器可以優化);如果意圖是改變或改變其他元素,那麼JavaScript(或其一個庫)是必要的。

1

在一般情況下,我會建議更喜歡CSS的解決方案時,它是可行的,因爲瀏覽器可能能夠優化它。只有在CSS不可行的情況下才使用JavaScript/jQuery解決方案(因爲你需要做一些你不能在CSS中做的事情,因爲你需要支持像IE7這樣的舊瀏覽器,它們不能正確處理:hover等)。

1

mouseovermouseout是可以通過jQuery的處理DOM鼠標事件。 jQuery也有方法可以修改元素的樣式 - 即jQuery.css()。這很明顯。

當然,CSS :hover是更有效的對你來說更加簡單。

鼠標事件和jQuery.css()的組合僅僅是jQuery用法的特定情況,其計算結果與CSS :hover的行爲相同。與正方形相同是矩形的具體情況。

+1

此外,除了它的簡單性外,大多數Web瀏覽器都支持CSS,它始終(在理論上)啓用。另一方面,JavaScript可以被禁用。所以,在我看來,他應該儘可能地使用CSS。 –

+0

@AlejandroIván,好吧,主要瀏覽器(大部分CSS3)都支持CSS,例外情況是jQuery應該完成這項工作。不過,我完全同意你的意見,因爲你表示支持_而不是支持_100%。 – matewka