我的 php 页面中有一个 div,它在页面加载后使用 jQuery 隐藏它。但是有没有办法从加载的一开始就隐藏它?
我问的原因是因为在很短的一秒钟内,您可以在页面加载时看到 div,然后在页面完全加载时隐藏。
看起来很不专业。
只是想知道是否有办法解决这个问题?
谢谢
我的 php 页面中有一个 div,它在页面加载后使用 jQuery 隐藏它。但是有没有办法从加载的一开始就隐藏它?
我问的原因是因为在很短的一秒钟内,您可以在页面加载时看到 div,然后在页面完全加载时隐藏。
看起来很不专业。
只是想知道是否有办法解决这个问题?
谢谢
使用 css 样式隐藏 div。
#selector { display: none; }
或像下面这样使用它,
CSS:
.hidden { display: none; }
HTML
<div id="blah" class="hidden"><!-- div content --></div>
在 jQuery 中
$(function () {
$('#blah').removeClass('hidden');
});
我有同样的问题。
使用 CSS 隐藏不是最好的解决方案,因为有时您希望没有 JS 的用户可以看到 div。最干净的解决方案是使用 JQuery 隐藏 div。但是 div 大约 0.5 秒可见,如果 div 位于页面顶部,这是有问题的。
在这些情况下,我使用中间解决方案,没有 JQuery。这个有效并且立即生效:
<script>document.write('<style>.js_hidden { display: none; }</style>');</script>
<div class="js_hidden">This div will be hidden for JS users, and visible for non JS users.</div>
当然,您仍然可以在 div 上添加您想要的所有效果,例如 JQuery toggle()。你会得到最好的行为(恕我直言):
除非使用 CSS 解决方案。最快的方法是立即用脚本隐藏它。
<div id="hideme"></div>
<script type="text/javascript">
$("#hideme").hide();
</script>
在这种情况下,我会推荐 Vega 的 CSS 解决方案。但是如果你需要更复杂的东西(比如动画),你可以使用这种方法。
这有一些复杂性(见下面的评论)。如果你想让这段脚本尽可能快地运行,你就不能使用 jQuery,只使用原生 JS 并推迟所有其他脚本的加载。
为什么不添加“显示:无;” 到 div 样式属性?这就是 JQuery 的 .hide() 函数所做的一切。
这种方法我用过很多次,不知道是不是一个很好的方法,但它可以很好地满足我的需要。
<html>
<head>
<script language="JavaScript">
function setVisibility(id, visibility) {
document.getElementById(id).style.display = visibility;
}
</script>
</head>
<body>
<div id="HiddenStuff1" style="display:none">
CONTENT TO HIDE 1
</div>
<div id="HiddenStuff2" style="display:none">
CONTENT TO HIDE 2
</div>
<div id="HiddenStuff3" style="display:none">
CONTENT TO HIDE 3
</div>
<input id="YOUR ID" title="HIDDEN STUFF 1" type=button name=type value='HIDDEN STUFF 1' onclick="setVisibility('HiddenStuff1', 'inline');setVisibility('HiddenStuff2', 'none');setVisibility('HiddenStuff3', 'none');";>
<input id="YOUR ID" title="HIDDEN STUFF 2" type=button name=type value='HIDDEN STUFF 2' onclick="setVisibility('HiddenStuff1', 'none');setVisibility('HiddenStuff2', 'inline');setVisibility('HiddenStuff3', 'none');";>
<input id="YOUR ID" title="HIDDEN STUFF 3" type=button name=type value='HIDDEN STUFF 3' onclick="setVisibility('HiddenStuff1', 'none');setVisibility('HiddenStuff2', 'none');setVisibility('HiddenStuff3', 'inline');";>
</body>
</html>
使用 CSS,您可以为 CSS 文件或样式属性中的元素设置 display:none
#div { display:none; }
<div id="div"></div>
<div style="display:none"></div>
或者在 div 之后使用 js 也可能足够快,但不够干净