2013-04-18 20 views
1

說我有一個元素,我想在懸停狀態下對其進行更改。如何使用jQuery爲僞類生成動畫或計時

使用Pseudo類將是這樣的:

#element:before { background-position: 0px -50px; } 
#element:hover:before { background-position: -50px -50px; } 

我可以實現一個jQuery animation功能呢?還是我可以爲其轉換計時?

+0

你嘗試$( 「#元素:之前」)。動畫()? – Charlie

+0

是的,沒有工作。 –

+0

是不是使用PURE CSS解決方案比較好? –

回答

1

這對jQuery來說是不可能的。

創建者:after或:before不是DOM的一部分,因此不能被選擇或修改。
- source

你可以在你的CSS才達到的過渡效果利用這一點,但這不會在舊的瀏覽器工作:

#element:before { 
    -webkit-transition: background-position 1s linear; 
    -moz-transition: background-position 1s linear; 
    -o-transition: background-position 1s linear; 
    -ms-transition: background-position 1s linear; 
    transition: background-position 1s linear; 
} 
+0

非常感謝。關於僞類,這是信息。我將使用CSS轉換:( –

1

你能使用.prev()

$(".block").prev().animate(); 

例子:http://jsfiddle.net/charlescarver/EkW4z/

+0

)在你的例子中,它使用類來重新定位一個也可以是解決方案的元素,正如@ DJDavid98所寫的那樣,重要的是前後都不是DOM的一部分,因此不能修改 –

+0

@Lior不完全是這樣的,你不需要在元素上使用類,我只是用它來設計它的樣式。 – Charlie

+0

它使用animation()函數並且工作正常但是不用操作僞類。prev()函數用於追蹤每個元素的前一個元素,但不會超過這個元素。無論如何,非常感謝您花時間去處理它。 –