使用窗口或文檔就緒函數遇到的問題是,在某些瀏覽器中,用戶可以看到發生的DOM操作該頁面正在加載。例如,如果我要刪除窗口內的元素,用戶可以先看到圖像加載,然後將其刪除。在dom加載之後但在用戶可以看到dom之前發生的就緒事件
我知道我可以隱藏CSS中的所有內容,然後在執行代碼後顯示它,但這不是我正在尋找的解決方案。它並不總是工作。首先,因爲JS是異步的,所以沒有辦法知道在所有其他dom操作完成後你的show函數將會觸發。
基本上我想要的是一個像文檔/窗口準備就緒的函數,除了它在DOM可見之前發生之外。在dom加載之後,但在它可見之前 - 那是我想要執行操作的時候。
如果你只是擔心樣式表加載,你也可以在容器元素上使用局部「opacity:0」,然後在樣式表上加載一個「opacity:1!important」。這在IE9之前的瀏覽器上不起作用,但它在某些情況下提供了無JavaScript解決方案,而不會搞亂高度計算。 – 2014-10-10 17:41:42