JS:body元素對象的clientWidth、offsetWidth、scrollWidth、clientLeft、offsetLeft、scrollLeft

來源:互聯網
上載者:User

標籤:des   style   class   blog   http   get   

document.body.clientWidth

擷取body元素對象的內容可視地區的寬度,即clientWidth=width+padding,不包括捲軸。

document.body.clientHeight

擷取body元素對象的內容可視地區的高度,即clientHeight=height+padding,不包括捲軸。

瀏覽器安全色性

在IE7中,如果給body設定捲軸的話,捲軸是出現在body內部的。所以當給body設定width和height時,在IE7中clientWidth和clientHeight的值是要比其它瀏覽器中的值小一些的。

document.body.offsetWidth

擷取body元素對象的寬度,即offsetWidth=width+padding+border,也可以寫成offsetWidth=clientWidth+border。

document.body.offsetHeight

擷取body元素對象的高度,即offsetHeight=height+padding+border,也可以寫成offsetHeight=clientHeight+border。

瀏覽器安全色性

在IE7中,如果給body設定捲軸的話,捲軸是出現在body內部的。所以offsetWidth和offsetHeight的值還需要加上捲軸的寬度。當然最終的值和其它瀏覽器是一樣的。

document.body.scrollWidth

擷取body元素對象內容的實際寬度,即對象的滾動寬度。

document.body.scrollHeight

擷取body元素對象內容的實際高度,即對象的滾動高度。

瀏覽器安全色性
  • 在FireFox和IE中,其擷取的就是body元素對象內部內容的實際寬高。
  • 在Chrome、Safari、Opera中,scrollWidth和scrollHeight擷取的是整個頁面文檔的滾動寬高。
document.body.clientLeft

擷取body元素對象的左邊框的寬度。

document.body.clientTop

擷取body元素對象的上邊框的寬度。

瀏覽器安全色性

各瀏覽器表現一致。

document.body.offsetLeft

擷取body元素對象相對於自身的位置。

document.body.offsetTop

擷取body元素對象相對於自身的位置。

瀏覽器安全色性
  • 在Chrome、Opera、Safari、IE8、IE9和IE10中,工作正常,offsetLeft和offsetTop的值都為0。
  • 在FireFox中,offsetLeft和offsetTop的值為負的body元素的border-width。
  • 在IE7中,offsetLeft和offsetTop指的是body元素對象的邊框(不包括邊框)到頁面文檔邊緣的距離。
document.body.scrollLeft

擷取頁面文檔向右滾動過的像素數。

document.body.scrollTop

擷取頁面文檔向下滾動過的像素數。

瀏覽器安全色性
  • 在FireFox、IE8、IE9和IE10中,scrollLeft和scrollTop的值始終為0。
  • 在IE7中,scrollLeft和scrollTop的值為body元素對象最頂端和對象內容的最頂端之間的距離,即捲軸滾過的距離。
本文所用的測試代碼如下:
<!DOCTYPE html><html><head><meta charset="utf-8"/><title>鬼眼邪神的部落格</title><meta name="author" content="鬼眼邪神"/><meta name="description" content="部落格地址http://cyg7561.blog.163.com/"/><style>*{margin:0;padding:0;}html {margin:20px;padding:20px;width:600px;border:10px solid #000;}body {margin:0 0 0 100px;width:400px;height:800px;border:5px solid #000;background:yellow;overflow:scroll;}.green {position:relative;margin:50px auto;padding:20px;width:80px;height:80px;border:10px solid #000;background:rgb(0,255,0);}.con {margin:0 auto;width:380px;}</style><script>(function(){window.onload=function (){var con=document.getElementById("con");var green=document.getElementById("green");var body=document.getElementById("body");document.onclick=function (event){var event=window.event||event;con.innerHTML="document.body.clientWidth="+document.body.clientWidth+","+"document.body.clientHeight="+document.body.clientHeight+"<br/>"+"document.body.offsetWidth="+document.body.offsetWidth+","+"document.body.offsetHeight="+document.body.offsetHeight+"<br/>"+"document.body.scrollWidth="+document.body.scrollWidth+","+"document.body.scrollHeight="+document.body.scrollHeight+"<br/>"+"document.body.clientLeft="+document.body.clientLeft+","+"document.body.clientTop="+document.body.clientTop+"<br/>"+"document.body.offsetLeft="+document.body.offsetLeft+","+"document.body.offsetTop="+document.body.offsetTop+"<br/>"+"document.body.scrollLeft="+document.body.scrollLeft+","+"document.body.scrollTop="+document.body.scrollTop+"<br/>";}}})();</script></head><body><div class="green" id="green"><div class="red"></div></div><div class="con" id="con"></div></body></html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.