js获取div的高度并输出

在用js获取上面div的高度的时候,
开始时总是获取不到div的实际高度,找了半天,发现获取的竟然不是div的内容高度…..
获取的应该是加载之后的实际div高度

第一个呢,是在DOM结构渲染完成以后调用的,这时候网页中一些资源还没有加载,比如图片等资源,但是DOM结构已经渲染成功了
第二个呢,是在网页DOM结构渲染完成,而且资源已经加载成功以后调用的。

有没有感受出区别来呢,一个是在资源没有加载的时候调用的,一个是在资源加载结束,页面已经渲染之后调用的,所以当我们在调用document.getElementById().height的时候,由于图片还没有加载,所以这时候<img>标签的高度就是0,所以返回值就是0。但是当你用window.onload=function(){}调用的时候,图片已经加载出来了,所以这时候就能得到图片的高度

window.onload=function(){
var o = document.getElementById("top_banner");
var h=o.offsetHeight;
document.getElementsByTagName("body")[0].style.marginTop =h+"px";//赋值给div,使其距离上方多少高度
}
点赞

发表评论