隐藏身体直到完成加载

时间:2016-11-23 15:57:06

标签: javascript html css onload

我创建了这段代码,因此我的页面将被隐藏,直到完成加载。但是我的代码并没有像我预期的那样工作。我希望这会隐藏BODY,直到OnLoad事件被触发。 但是,它只是保持隐藏状态。

如果有更好的方法可以隐藏BODY直到它完成加载,或者这个错误有什么问题,那么任何帮助都会受到赞赏。

这是我迄今为止所尝试的内容:



function unveil() {
  var thebod = document.getElementById("testbody");
  thebod.STYLE = "display: block;"
}

<HTML>

<HEAD>
  <TITLE>HELLO</TITLE>
</HEAD>

<BODY ID="testbody" ONLOAD="unveil();" STYLE="display: none;">
  <div align="CENTER">
    HELLO WORLD!
  </div>
</BODY>

</HTML>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:3)

DOMContentLoaded对象的window事件可以执行此操作。但是,不要隐藏身体,而是隐藏包装。并且,在设置样式时,请确保设置CSS属性的样式,而不是样式对象本身。

window.addEventListener("DOMContentLoaded", function(){
  document.getElementById("wrapper").style.display = "block";
});
#wrapper { text-align:center; background:#e0e0e0; display:none;}
<HTML>

<HEAD>
  <TITLE>HELLO</TITLE>
</HEAD>

<BODY>
  <div id="wrapper">
    HELLO WORLD!
    
    <!-- The following is only added to create a delay in the 
         parsing of the document -->
    <script>
      for(var i = 0; i < 100000000; ++i){ var x = i / 3.14; }
    </script>  
  </div>
</BODY>

</HTML>

答案 1 :(得分:1)

您没有正确设置元素'样式':

您可以这样做:

element.style.display = "block";

element.setAttribute('style', "display: block");

这是一个有效的例子:

function unveil() {
  var thebod = document.getElementById("testbody");
  thebod.style.display = "block";
}
<HTML>

<HEAD>
  <TITLE>HELLO</TITLE>
</HEAD>

<BODY ID="testbody" ONLOAD="unveil();" STYLE="display: none;">
  <div align="CENTER">
    HELLO WORLD!
  </div>
</BODY>

</HTML>

答案 2 :(得分:0)

您的问题在这里:

thebod.STYLE = "display: block;"

应该是:

thebod.style.display = 'block';

这是完整的方法(使用不引人注目的javascript):

var body = document.getElementsByTagName('body')[0];

function unveil() {
    body.style.display = 'block';
}

window.addEventListener('load', unveil, false);
body {
display: none;
}

div {
text-align: center;
}
<div>HELLO WORLD!</div>

答案 3 :(得分:-1)

UPDATE t1
    SET BALANCE = t1.BALANCE - t2.sum_amount
FROM Table1 t1 JOIN
     (SELECT ID, SUM(Amount) as sum_amount
      FROM TABLE2
      GROUP BY ID
     ) t2
     ON t2.ID = t1.ID ;