offsetHeight在OnLoad中獲取為0的現象
更新時間:2013年07月22日 18:11:22 作者:
需要獲取div的高度時,往往需要用到offsetHeight,有時會碰到offsetHeight獲取到為0的現象,感興趣的朋友可以參考下面的代碼片段
在使用IE中,特別在目前div+css的方式,往往不定義div的高度,這是在添加div內容后,需要獲取div的高度時,往往需要用到offsetHeight。
在使用中,有時會碰到offsetHeight獲取到為0的現象,但如果你用各種JS調試工具調試,又能在對象中看到值(如果直接指向offsetHeight是沒值的,但如果是對象查看是有值的,在調試器中回車查看對象就已經刷新對象了,所以有值。)
比如下面片段
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script language='javascript'>
window.attachEvent( "onload", function(){ _resizeScroll2();} );
window.onresize=function(){winresize();};
function _resizeScroll2(){
var html1 = '<div id="divcj" style="margin-top:15px;font-size:10px;width:400px;">'
+ '<div style="float:left;width:50px;">測試</div>'
+ '<div style="float:left;width:320px;">danielinbiti</div>'
+ '</div>'
+ '<div id="divcj2" style="margin-top:15px;font-size:10px;width:400px;">'
+ '<div style="width:320px;">danielinbiti</div>'
+ '</div>'
document.getElementById('outer').innerHTML=html1;
document.getElementById('divcj2').style.display='none';
alert(document.getElementById('divcj2').offsetHeight);
}
</script>
</head>
<body>
<div id='outer'></div>
</body>
</html>
如果獲取divcj的高度,那么在onload中獲取到的是0。因為divcj下有float方式布局的。
這時如果div簡單,可以借助隱藏層,比如這里的divcj2,把float去掉后,獲取到的高度和divcj一樣高。
在使用中,有時會碰到offsetHeight獲取到為0的現象,但如果你用各種JS調試工具調試,又能在對象中看到值(如果直接指向offsetHeight是沒值的,但如果是對象查看是有值的,在調試器中回車查看對象就已經刷新對象了,所以有值。)
比如下面片段
復制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script language='javascript'>
window.attachEvent( "onload", function(){ _resizeScroll2();} );
window.onresize=function(){winresize();};
function _resizeScroll2(){
var html1 = '<div id="divcj" style="margin-top:15px;font-size:10px;width:400px;">'
+ '<div style="float:left;width:50px;">測試</div>'
+ '<div style="float:left;width:320px;">danielinbiti</div>'
+ '</div>'
+ '<div id="divcj2" style="margin-top:15px;font-size:10px;width:400px;">'
+ '<div style="width:320px;">danielinbiti</div>'
+ '</div>'
document.getElementById('outer').innerHTML=html1;
document.getElementById('divcj2').style.display='none';
alert(document.getElementById('divcj2').offsetHeight);
}
</script>
</head>
<body>
<div id='outer'></div>
</body>
</html>
如果獲取divcj的高度,那么在onload中獲取到的是0。因為divcj下有float方式布局的。
這時如果div簡單,可以借助隱藏層,比如這里的divcj2,把float去掉后,獲取到的高度和divcj一樣高。
相關文章
怎么理解wx.navigateTo的events參數使用詳情
這篇文章主要介紹了怎么理解wx.navigateTo的events參數使用詳情,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05[js高手之路]HTML標簽解釋成DOM節(jié)點的實現方法
下面小編就為大家?guī)硪黄猍js高手之路]HTML標簽解釋成DOM節(jié)點的實現方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08《JavaScript高級程序設計》閱讀筆記(二) ECMAScript中的原始類型
ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來判斷值的類型2012-02-02JavaScript Cookie顯示用戶上次訪問的時間和次數
用cookies記錄用戶的訪問時間與次數,然后再次訪問時,在讀取。2009-12-12