我有一个JavaScript文件被加载在文档头部,需要在所有页面内容加载完成前隐藏文档主体。我尝试过:
$(document.body).hide();
但是在某些浏览器中仍然会出现闪烁。我使用的是最新的jQuery库(1.6.2)。在domready上触发事件确实会隐藏文档主体,但也会导致闪烁。
我所能控制的只是JavaScript中的内容。我无法操纵静态HTML页面,因为该脚本正在开发为插件。
我有一个JavaScript文件被加载在文档头部,需要在所有页面内容加载完成前隐藏文档主体。我尝试过:
$(document.body).hide();
document.write( '<style class="hideStuff" ' +
'type="text/css">body {display:none;}<\/style>');
window.onload = function() {
setTimeout(
function(){
var s, styles = document.getElementsByTagName('style');
var i = styles.length;
while (i--) {
s = styles[i];
if (s.className == 'hideStuff') {
s.parentNode.removeChild(s);
return;
}
}
}, 1000); // debug pause
}
visibility:hidden
代替display:none
,这样页面在显示之前就可以完全布局,而使用display
则需要等到可见时才会进行布局。 - RobG<body>
<div id="container">
all dynamic page content goes here
</div>
</body>
#container {display: none;}
然后,您可以使用JavaScript进行任何想要的操作,并在构建页面完成后执行以下操作以使其可见:
document.getElementById("container").style.display = "block";
$("#container").show();
container{display: block;}
。 - Andydisplay:none
,浏览器不必在其中渲染您的内容(图像等不会在下面“预加载”)。也许更好的方法是隐藏这些东西(例如使用 jQuery-ui 的 .ui-helper-hidden-accessible
)。 - anthony sottile你可以使用 CSS 和 JS:
在你的文档顶部,在 TITLE 下面使用 CSS:
<style type="text/css">body {visibility: hidden;}</style>
然后使用JS恢复可见性:
<script type="text/JavaScript">
document.write('<style type="text/css">body {visibility: visible;}</style>');
</script>
祝您愉快 :)