在頁面加載()隱藏的元素,如果我使用jQuery隱藏在Page_Load中的一些元素,這些元素閃爍的一瞬間,當頁的帖子,然後消失:與jQuery
function pageLoad() {
$('#panelOne').hide();
$('#panelTwo').hide();
有沒有辦法阻止閃爍?
我不想將元素CSS設置爲visibility:hidden,因爲之後調用jquery .show()方法似乎沒有顯示元素。
在頁面加載()隱藏的元素,如果我使用jQuery隱藏在Page_Load中的一些元素,這些元素閃爍的一瞬間,當頁的帖子,然後消失:與jQuery
function pageLoad() {
$('#panelOne').hide();
$('#panelTwo').hide();
有沒有辦法阻止閃爍?
我不想將元素CSS設置爲visibility:hidden,因爲之後調用jquery .show()方法似乎沒有顯示元素。
設置visibility: hidden
不起作用,但display: none
呢。 See jsFiddle.
您可以在DOMReady事件上做到這一點,但在CSS中執行它會更乾淨。
hide()ing確實將顯示設置爲none,所以這應該沒有什麼區別(除了hide()會通過存儲顯示的原始值來避免一些邊界錯誤) – 2011-05-12 22:54:47
我相信jQuery的hide方法實際上設置了「display :沒有'爲你。 – Alxandr 2011-05-12 22:56:26
好的。但是在CSS中這樣做更乾淨,幾乎肯定會更快。 – lonesomeday 2011-05-12 22:57:29
而不是隱藏在頁面加載,隱藏在domready中像這樣:
$(function() { ........ });
更換......你的2線隱藏的。
Domready在dom-tree構建完成時運行,比pageLoad早得多。 Pageload等待圖像和東西運行。 (假設你有pageLoad如下:<html onload="pageLoad();">
)。
事實上,我在這樣做時仍然看到閃爍。這與document.ready()相同嗎? – 2011-05-12 22:46:38
是的,$(function)是document.ready的縮寫。如果您仍然看到閃爍,則需要考慮隱藏代碼中的元素(html/css),然後在需要時再次在js中顯示它。 – Alxandr 2011-05-12 22:55:42
@Sean:你有一個示例URL?我正在努力理解閃爍的原因。 – 2011-05-12 23:45:45
肯定使用的文件準備,而不是頁面加載:
$(function() {
$('#panelOne, #panelTwo')
.hide();
});
$.show()
不會對設置爲visibility: hidden
元素工作。您需要使用display: none
。這會比使用jQuery隱藏DOM準備好,並且絕對保證你不會看到閃爍。
我通常只是設置顯示:無,但我希望看到更好的解決方案,如果有的話。 – 2011-05-12 22:27:29
設置CSS顯示:無;是最好的選擇。這將與.show();後來。和平... – 2011-05-12 22:30:39
我試過顯示:無;在CSS我自己,但你如何得到它的工作沒有JavaScript切換顯示,如果用戶已禁用JS? – robx 2011-05-12 22:38:44