默認情況下(我們默認顯示它,並且我們試圖用jQuery隱藏它),當文檔準備好在特定的<div>
上時,我調用hide()函數display:block
和visibility:visible
。在文檔準備就緒時調用hide()時閃爍
有時當我刷新頁面時,<div>
會在幾分之一秒內出現,然後根據hide()
函數消失。
我的問題:有沒有辦法避免這種<div>
閃爍?
感謝
默認情況下(我們默認顯示它,並且我們試圖用jQuery隱藏它),當文檔準備好在特定的<div>
上時,我調用hide()函數display:block
和visibility:visible
。在文檔準備就緒時調用hide()時閃爍
有時當我刷新頁面時,<div>
會在幾分之一秒內出現,然後根據hide()
函數消失。
我的問題:有沒有辦法避免這種<div>
閃爍?
感謝
它的渲染單元和執行你的JS代碼之間的時間。 避免這種不把代碼在DOM就緒事件,但該元素之後的道路:
<div id="whatever">...</div>
<script>$('#whatever').hide();</div>
別的這樣的註冊事件處理程序仍然可以進入,當然你的DOM就緒功能。
哦,你不需要使用visibility
在所有 - show()
和hide()
只有無論如何都會使用display
屬性。
如果你要隱藏的元素是「請啓用JavaScript」的警告,請考慮使用<noscript>...</noscript>
- 那麼它永遠不會出現,除非JS被禁用。
非常感謝這個答案。是的,我不使用顯示:沒有非懲罰js禁用的球員。謝謝大家。 – JojoLapin45 2011-12-31 15:07:55
@Jojo如果此答案幫助您解決問題,請務必將其標記爲已接受。這可以幫助其他人快速輕鬆地找到同樣的問題。 – gobernador 2012-07-18 14:25:31
是的,默認可見性:隱藏,並顯示()你想要的。或者,在用$('...')。hide()緊接在相關html之後加載html後立即調用hide()。
發生'扭曲'的原因是,一旦html命中瀏覽器就會加載該塊,但隱藏它的jquery不會被執行,直到瀏覽器加載完所有的html並準備好DOM爲止。
是不是有一個原因,你不是用CSS隱藏你的元素首先停止fliker,你可以改變可見性:對可見性可見:隱藏 – 2011-12-31 13:31:28
通常你不想這樣做,因此它適用於沒有JS的用戶,或者所以搜索引擎可以計算出發生了什麼。 – 2011-12-31 13:32:23
聽起來像是「你沒有js啓用」的警告。在那種情況下,他不能用JS顯示它,但必須隱藏它......但是noscript將是另一種選擇。 – ThiefMaster 2011-12-31 13:32:57