我想創建一個使用CSS3轉換的效果。 div應該在mouseover上改變它的寬度和背景顏色。然後在鼠標懸停時,它應該等待2秒鐘,然後返回到正常的寬度和背景顏色。我所做的是在鼠標懸停上通過jQuery添加類hoverclass
,並在鼠標移除時將其刪除。檢查出Fiddle。如何結合多個轉換與jQuery?
我對此有兩個問題。首先,瀏覽器會以不同的方式演繹小提琴。在Chrome中,一切正常,在mouseover上div會立即改變寬度,然後等待鼠標移動2秒後恢復正常大小。然而,在Firefox中,新添加的hoverclass將被直接用作新的轉換規則。所以會發生的是,在鼠標懸停時,動畫將在2秒後開始。然後在mouseout上,這個類將被刪除,並且Firefox會採用#test
的轉換規則,因此div將直接恢復到正常大小,而不會延遲。
我注意到的第二件事是,當我嘗試使用兩個屬性(背景顏色和寬度)時僅爲寬度使用新的過渡規則(如在hoverclass中)時,它會覆蓋背景顏色。這是否意味着我必須將所有我在#test
中使用的過渡屬性寫在懸浮類中?
好吧,你是對的。在這個例子中,它不會工作。但是,例如,如果我想更改鼠標懸停的寬度,然後等待2秒,然後將寬度更改爲300px,然後再等待2秒,然後將其更改爲200像素,則需要添加一個類。在那種情況下我會怎麼做? – phpheini 2013-04-25 21:53:41
請參閱http://jsfiddle.net/MMKnx/2/ unhovering使用CSS,然後在停止4秒後導致最終過渡的JavaScript超時。 – 2013-04-25 22:05:06