5

在嘗試CSS轉換時,我創建了一個小滾動演示,它將right css樣式從某個負數轉換爲0,然後在觸發transitionend事件以獲得無限滾動效果時重新啓動。這裏是我的演示小提琴 - http://jsfiddle.net/XhFdv/在Internet Explorer 10中重置css轉換

這適用於最新的FF,Chrome,Safari(win)和Opera。在IE 10中(在Win 7和Win 8上都測試過),事件觸發,但嘗試將正確的屬性設置回負數,它開始時似乎不起作用 - 它在設置後通常保持爲0(但不是總是)。

爲了讓事情更具娛樂性,添加console.log()alert()通常足以使其按預期運行。這讓我覺得UI層沒有完成。我試圖在setTimeout(..., 0)中包裝更多的樣式設置,以便渲染可以追上,但這似乎沒有幫助。

這是IE 10中的錯誤,還是在演示腳本中缺少某些東西?

+0

我見過這類錯誤之前,他們是絕對是一個痛。通常超時工作,但我猜不是在這種情況下。我明天有時間提琴,所以我會在這方面回覆你。非常奇特! – 2013-03-12 05:08:58

+0

我增加了setTimeout延遲達10-20毫秒,它只適用於我。 – 2013-12-19 15:48:31

+2

幾個月前,我向微軟提交了一個錯誤。我相信他們能夠重現該問題,並將其作爲下一個主要版本之一修復的候選錯誤。不幸的是,我沒有進入IE 11。 – mld 2013-12-19 19:59:10

回答

1

alert()可以工作,因爲它會阻止腳本執行。作爲輔助措施:一些觸發重繪或迴流將是下一個最好的事情:

  • 切換visibility:hidden/visible通過類屬性通過改變風格
  • 切換visibility:hidden/visible屬性更改
  • 通過添加樣式表CSSOM
  • 經由display:none
  • 計算offsetWidthoffsetHeight
  • Tr的隱藏的元件iggering一個scroll事件
  • 所討論的元素的同級觸發一個:hover僞類

參考