2013-07-17 32 views
0

目前最好的例子,我有這個問題的是在這裏:http://lukes.comyr.com/Tf2MarketThing/index.html我可以取消css hover僞造或強制webkit檢查懸停嗎?

在Safari瀏覽器,當你將鼠標懸停在一個項目它激活的CSS hover僞,這是一個WebKit的變換:

.item:hover { 
    -webkit-transform: scale(1.5) rotate(30deg); 
} 

然而,如果你點擊它移動的項目(通過jQuery animate()),但它仍然保留在懸停動畫/狀態,即使鼠標不在該項目上,爲了擺脫懸停僞裝,你必須懸停在物品再次移動的地方。

有沒有辦法解決這個問題,使物品移動後處於正常的css狀態?

  • 強制瀏覽器重新計算懸停邊界
  • 復位或刪除僞項類
  • 模擬鼠標移動事件觸發懸停計算
:如果有這些方法可能存在我想知道

編輯:有趣的是,現在鏈接似乎超載,所以繼承人的一些截圖幫助說明問題:

這是什麼項目低OKS當你將鼠標懸停在它像,注意它是如何比其他元素

Hovering

這是此項目的樣子它移動之後,這仍然是在懸停僞旋轉旋轉,即使光標還沒有從它的原始位置(間隙在右上角)

Still hovering

+0

在懸停時刪除類「.item」,當動畫完成時,將該類添加回去。 – Ohgodwhy

+0

@Ohgodwhy沒有工作,儘管因爲某種原因沒有分配班級,它仍然處於懸停狀態,我不能刪除班級,因爲它有一個單獨的webkit動畫,每次添加班級時都會播放 – Luke

回答

1

這不是完整的解決方案,而只是想給你的想法如何解決這個問題

移動
$('.item').click(function(){$(this).css('transform','scale(1)')}) 
$('.item').hover(function(){$(this).css('transform','scale(1.5)')}) 
$('.item').mouseout(function(){$(this).css('transform','scale(1)')}) 
+0

只需用最後一行手動設置變換對我進行修改,與我期待的哈哈相比,它非常簡單 – Luke