如果我使用jquery在page_load上隐藏一些元素,那么当页面发布然后消失时,元素会瞬间闪烁:
function pageLoad() {
$('#panelOne').hide();
$('#panelTwo').hide();
有没有办法防止闪烁?
我不想将css元素设置为visibility:hidden,因为稍后调用jquery .show()方法似乎不会显示该元素。
答案 0 :(得分:6)
设置visibility: hidden
不起作用,但display: none
会起作用。 See jsFiddle.
你可以在DOMReady事件上执行此操作,但在CSS中执行它会更清晰。
答案 1 :(得分:2)
$.show()
不适用于设置为visibility: hidden
的元素。您需要使用display: none
。这对你来说比使用jQuery隐藏在DOM上更好,并且绝对保证你不会看到闪烁。
答案 2 :(得分:1)
不要隐藏在页面加载上,而是将其隐藏在domready中,如下所示:
$(function() { ........ });
用你的2条隐藏线替换......。
Domready在构建dom-tree时运行,并且比pageLoad早得多。 Pageload等待图像和内容运行。 (假设你有以下的pageLoad:<html onload="pageLoad();">
)。
答案 3 :(得分:1)
绝对使用文档就绪而不是页面加载:
$(function() {
$('#panelOne, #panelTwo')
.hide();
});