Chrome渲染Transition時頁面閃動Bug

前段時間,有同事和會員反饋使用Chrome訪問淘寶首頁會出現畫面閃動的現象,可是我在Mac和Win下面的Chrome都沒法重現這個問題,後來重裝了一遍Win7下的Chrome Beta版本,終於重現了這個問題,正好研究解決下…css

問題主要集中於淘寶首頁吊頂以及左側服務欄處,鼠標移過整個頁面會閃動一次,Refresh和Reopen沒法重現,只有當首次打開淘寶首頁纔會出現…html

問題重現:css3

若是想查看此問題請訪問jsfiddlerweb

問題定位:chrome

個人第一感受是鼠標移動時觸發了某些JS,致使頁面從新加載了一遍從而出現閃動,可是使用Chrome控制檯監測Network狀態,發現頁面閃動並不會額外發送請求,這就排除了JS的問題。再檢查下這兩個地方的CSS源碼:瀏覽器

#site-nav .menu-hd b {

-webkit-transition: -webkit-transform .2s ease-in;

}iphone

.product-main s {

-webkit-transition: all .2s ease-in-out;

}工具

上述兩個地方都使用了CSS3的Transition屬性,那是否是這個Transition致使的問題?因爲Refresh和Reopen頁面都沒法重現,只有當首次打開淘寶首頁纔會出現,最便捷的辦法就是使用FiddlerAuto Responder功能來在線調試代碼,因而我嘗試將CSS代理到本地並去除-webkit-transition: all .2s ease-in-out;屬性,關閉瀏覽器後再次訪問淘寶首頁發現問題解決了,反向恢復屬性後執行上述操做,Bug再次重現…看來我好像找到緣由了,可是爲何是它?動畫

尋找解決方案:ui

Google關鍵字「Chrome transition blink」和「Chrome transition bug」發現網上已經有不少人注意到這個問題,推測爲Chrome在初始渲染CSS動畫時產生的Bug,雖然暫時沒法考證這個問題的根本緣由,可是目前已知的解決方案有兩條:

一些思考:

遇到一些很奇怪的Bug首先要快速定位,最經常使用的幾種定位Bug方法無非這幾種;其次要反覆調試,使用Fiddler這類輔助工具每每能節約大量時間和精力;最後就是要善於描述關鍵問題,並提煉出關鍵字(最好是英文)使用Google搜索相關解決方案。

感謝:

相關連接:

 
 
相關文章
相關標籤/搜索