【发布时间】:2012-03-21 23:41:24
【问题描述】:
我有一个大量使用 jQuery 的网页。
我的目标是只在一切准备就绪时才显示页面。
因此,我想避免向用户显示烦人的页面渲染。
到目前为止我已经尝试过了(#body_holder 是 body 中的一个包装器):
$(function(){
$('#body_holder').hide();
});
$(window).load(function() {
$("#body_holder").show();
});
这完全没问题,但会弄乱布局。
问题在于隐藏包装会干扰其他使用的 jQuery 函数和插件(例如 layout-plugin)。
所以我想必须有另一个技巧来做到这一点。也许在 window.load 发生之前将图片或 div 放在 body 上?
你使用什么方法?
编辑:
解决方案很可能必须是display:none 或hide() 之外的其他方式;
【问题讨论】:
-
你有没有想过使用 CSS 将 display:none 应用到#body_holder,然后使用 $(document).ready(function(){ $("#body_holder").show(); });一旦 DOM 准备就绪,是否将其纳入视野?
-
如果您在 HTML 中指定图像大小,则页面在加载时不会那么烦人的“跳跃”。如果你做对了,渲染可能会比等到所有东西都加载好才能看到或做任何事情要少得多。如果您真的想这样做,请重新考虑。
-
@Ohgodwhy 是的。这实际上是我第一次尝试。显示:没有在身体上。但这与我的示例相同。问题还是一样。它隐藏但显示布局和所有其他东西都搞砸了。
-
@GolezTrol 谢谢。我在页面上没有任何图像。它呈现内容和布局。
-
不要使用 display:none,而是使用 opacity:0。和 filter:alpha(opacity=0);
标签: javascript jquery document-ready