July 11, 2024Programming
JavaScript Scroll Event的坑:Chrome 篇
最近發現一個非常奇怪的bug。
本網站的主頁full page slide的實現是有用到JavaScript Scroll Event的virtual scroll的,也就是scrollintoview ,scrolltop這些method。但是我發現當我利用這些方法scroll來scroll去的時候,一些網頁的元素竟然神秘消失掉了!
這些消失的元素還是存在在DOM裡頭,但是你就是看不見它,而且哪個東西會消失、什麼時候消失完全是不可知的!
但是經過試驗,這個奇怪的bug只出現在chrome裡,而firefox、safari完全運作正常。因此可以認定很有可能問題出現在chrome的渲染機制上。
經過一番Google後,中文搜索是完全找不到相關情況,只有英文搜索找到類似的情況,引證了確實是chrome的問題。 https://github.com/locomotivemtl/locomotive-scroll/issues/361
考慮到chrome驚人的市佔率,這個問題必須解決。
有人提供了一個hack:在被scroll的元素上加上perspective: 1px; 。我試了一下,竟然確實可行,到底是什麼原因呢?
希望以後遇到懂的高手可以解決我的疑問。