課程
/前端開發(fā)
/JavaScript
/JavaScript進(jìn)階篇
得到的結(jié)果都一樣,沒有弄懂,求大神解答
2016-03-14
源自:JavaScript進(jìn)階篇 9-20
正在回答
offsetTop,offsetHeight,scrollHeight,scrollTop的區(qū)別
offsetTop,offsetHeight,scrollHeight,scrollTop,這些屬性曾經(jīng)困擾了我很長很長很長時(shí)間。今天花點(diǎn)功夫,徹底把他們搞清楚了。假設(shè) obj 為某個(gè) HTML 控件。obj.offsetTop 指 obj 距離上方或上層控件的位置,整型,單位像素。obj.offsetHeight 指 obj 控件自身的高度,整型,單位像素。offsetTop 可以獲得 HTML 元素距離上方或外層元素的位置,style.top 也是可以的,二者的區(qū)別是:一、offsetTop 返回的是數(shù)字,而 style.top 返回的是字符串,除了數(shù)字外還帶有單位:px。二、offsetTop 只讀,而 style.top 可讀寫。三、如果沒有給 HTML 元素指定過 top 樣式,則 style.top 返回的是空字符串。scrollTop 是“卷”起來的高度值,示例:<div style="width:100px;height:100px;background-color:#FF0000;overflow:hidden;" id="p"><div style="width:50px;height:300px;background-color:#0000FF;" id="t">如果為 p 設(shè)置了 scrollTop,這些內(nèi)容可能不會完全顯示。</div></div><script type="text/javascript">var p = document.getElementById("p");p.scrollTop = 10;</script>由于為外層元素 p 設(shè)置了 scrollTop,所以內(nèi)層元素會向上卷。
scrollHeight 與 offsetHeight
offsetHeight是自身元素的高度,scrollHeight是 自身元素的高度+隱藏元素的高度(是不是可以理解成內(nèi)層元素的offsetHeight值???)。
<div id="container" style="background-color:silver; width:100px; height:100px; overflow:auto;">
<p style="background-color:red; height:250px; ">別再做情人 做只貓 做只狗 不做情人 做只寵物至少可愛迷人 和你相交不淺無謂明日會被你憎</p></div><script>alert(document.getElementById("container").offsetHeight);alert(document.getElementById("container").scrollHeight);</script>將依次輸出100,250。因?yàn)橐呀?jīng)指定了元素的height為100px,所以offsetHeight始終為100px;內(nèi)部元素為 250px,而容器元素只有100px,那么還有150px的內(nèi)容它無法顯示出來,但它卻是實(shí)際存在的,所以scrollHeight值為 100+150=250。
轉(zhuǎn)載的
舉報(bào)
本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動態(tài)交互世界
2 回答clientHeight,scrollHeight和offsetHeight到底有什么區(qū)別
1 回答offsetHeight scrollHeight clientHeight
1 回答documentElement body的差別,還有clientHeight offsetHeight scrollHeight的差別
3 回答這兩者的區(qū)別?
1 回答請問這兩者的區(qū)別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-03-14
offsetTop,offsetHeight,scrollHeight,scrollTop的區(qū)別
offsetTop,offsetHeight,scrollHeight,scrollTop,這些屬性曾經(jīng)困擾了我很長很長很長時(shí)間。
今天花點(diǎn)功夫,徹底把他們搞清楚了。
假設(shè) obj 為某個(gè) HTML 控件。
obj.offsetTop 指 obj 距離上方或上層控件的位置,整型,單位像素。
obj.offsetHeight 指 obj 控件自身的高度,整型,單位像素。
offsetTop 可以獲得 HTML 元素距離上方或外層元素的位置,style.top 也是可以的,二者的區(qū)別是:
一、offsetTop 返回的是數(shù)字,而 style.top 返回的是字符串,除了數(shù)字外還帶有單位:px。
二、offsetTop 只讀,而 style.top 可讀寫。
三、如果沒有給 HTML 元素指定過 top 樣式,則 style.top 返回的是空字符串。
scrollTop 是“卷”起來的高度值,示例:
<div style="width:100px;height:100px;background-color:#FF0000;overflow:hidden;" id="p">
<div style="width:50px;height:300px;background-color:#0000FF;" id="t">如果為 p 設(shè)置了 scrollTop,這些內(nèi)容可能不會完全顯示。</div>
</div>
<script type="text/javascript">
var p = document.getElementById("p");
p.scrollTop = 10;
</script>
由于為外層元素 p 設(shè)置了 scrollTop,所以內(nèi)層元素會向上卷。
scrollHeight 與 offsetHeight
offsetHeight是自身元素的高度,scrollHeight是 自身元素的高度+隱藏元素的高度(是不是可以理解成內(nèi)層元素的offsetHeight值???)。
<div id="container" style="background-color:silver; width:100px; height:100px; overflow:auto;">
<p style="background-color:red; height:250px; ">
別再做情人 做只貓 做只狗 不做情人 做只寵物至少可愛迷人 和你相交不淺無謂明日會被你憎
</p>
</div>
<script>
alert(document.getElementById("container").offsetHeight);
alert(document.getElementById("container").scrollHeight);
</script>
將依次輸出100,250。因?yàn)橐呀?jīng)指定了元素的height為100px,所以offsetHeight始終為100px;內(nèi)部元素為 250px,而容器元素只有100px,那么還有150px的內(nèi)容它無法顯示出來,但它卻是實(shí)際存在的,所以scrollHeight值為 100+150=250。
轉(zhuǎn)載的