最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS中位置與大小的獲取方法

 更新時間:2016年11月22日 08:01:46   投稿:jingxian  
下面小編就為大家?guī)硪黄狫S中位置與大小的獲取方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

scrollHeight,clientHeight,offsetHeight的區(qū)別

說明:

scrollHeight:DOM元素的實際內容的高度,不包border的高度,會隨DOM元素中內容的增加(超過可視區(qū)后)而變大。

clientHeight:DOM元素內容可視區(qū)的高度,不包含滾動條和邊框的高度。

offsetHeight:DOM元素整體的高度,包括滾動條和邊框。

當滾動條不出現(xiàn)的時候

這時候DOM元素中沒有內容或者內容不超過可視區(qū)
scrollWidth=clientWidth,兩者皆為可視區(qū)的寬度。
scrollHeight=clientHeight,兩者皆為可視區(qū)的高度。
offsetWidth、offsetHeight為DOM元素的整體寬度和高度。

當滾動條出現(xiàn)的時候

這時候DOM元素中沒有內容或者內容不超過可視區(qū)
scrollWidth>clientWidth
scrollHeight>clientHeight
scrollWidth和scrollHeight分別是實際內容的寬度和高度
clientWidth和clientHeight分別是內容可視區(qū)的寬度和高度
offsetWidth、offsetHeight為DOM元素的整體寬度和高度。

Demo:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>正確理解和運用與尺寸大小相關的DOM屬性</title>
    <style type="text/css">
    html,body {margin: 0;}
    body {padding: 100px;}
  #box {
    overflow: scroll;
    width: 400px;
    height: 300px;
    padding: 20px;
    border: 10px solid #000;
    margin: 0 auto;
    box-sizing: content-box;
    /*
    box-sizing:content-box表示元素的寬度與高度不包括內邊距與邊框的寬度和高度
    box-sizing:border-box表示元素的寬度與高度包括內邊距與邊框的寬度和高度
     */
  }
  #box2 {
    border: 1px solid #000;

  }
    </style>
  </head>
  <body>
  <div id="box">
    <div id="box2">谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果谷歌瀏覽器測試結果</div>
  </div>
  <script type="text/javascript">
  //offsetWidth ,offsetHeight對應的是盒模型的寬度和高度
  //scrollWidth,與scrollHeight對應的是滾動區(qū)域的寬度和高度,但是不包含滾動條的寬度!滾動區(qū)域由padding和content組成。
  //clientWidth,clientHeight對應的是盒模型除去邊框后的那部分區(qū)域的寬度和高度,不包含滾動條的寬度
    var boxE=document.getElementById("box");
    var box=document.getElementById("box2");
    //對于scrollWidth沒有發(fā)生橫向的溢出,同時由于overflow: scroll的原因,scrollWidth 跟clientWidth相同,但是沒有包含滾動條的寬度
    console.log('scrollWidth:' + boxE.scrollWidth);//423
    console.log('scrollHeight:' + boxE.scrollHeight);//672

    //clientWidth與clientHeight分別等于offsetWidth與offsetHeight減掉相應邊框(上下共20px,左右共20px)和滾動條寬度后的值(chrome下滾動條寬度為17px);
    console.log('clientWidth:' + boxE.clientWidth);//423=460-20-17
    console.log('clientHeight:' + boxE.clientHeight);//323=360-20-17

    //offsetWidth與offsetHeight與chrome審查元素看到的尺寸完全一致
    console.log('offsetWidth :' + boxE.offsetWidth);//460=width+padding+border
    console.log('offsetHeight:' + boxE.offsetHeight);//360=height+padding+border
  </script>
  </body>
</html>

利用JS獲取DOM元素的大小

獲取html根元素:document.documentElement
獲取body元素:document.body

獲取頁面可視區(qū)的寬度和高度,不包括滾動條
IE、FF、chrome中采用:
使用document.documentElement.clientWidth和document.documentElement.clientHeight
注意:ie6標準模式下,上述方式可以

在混雜模式下:
ie6使用document.body.clientWidth和document.body.clientHeight
注意: window.innerWidth/Height是包括滾動條的寬度和高度的。這也與document.documentElement.clientWidth/Height的區(qū)別所在。
所以在使用的時候注意兼容寫法:

Demo

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>頁面視口寬高</title>
</head>
<body>
  <script type="text/javascript">
  //標準模式
  var w=document.documentElement.clientWidth;
  var h=document.documentElement.clientHeight;
  console.log('w寬:'+w+'---'+'h高:'+h);
  //混雜模式
  var width=document.body.clientWidth;
  var height=document.body.clientHeight;
  //兼容寫法
  var ww=document.documentElement.clientWidth||document.body.clientWidth;
  var hh=document.documentElement.clientHeight||document.body.clientHeight;
  console.log('ww寬:'+ww+'---'+'hh高:'+hh);
  </script>
</body>
</html>

獲取一個普通html元素的大小

docE.offsetWidth;
docE.offsetHeight;

獲取滾動條滾動高度(兼容性處理)

var oTop=document.documentElement.scrollTop||document.body.scrollTop;

offsetWidth與offsetHeight

這兩個屬性表示元素的可視區(qū)的寬度和高度,這個值包括元素的邊框(border),水平padding,垂直滾動條寬度或者高度,元素本身寬度或者高度等。

offsetWidth與offsetHeight這兩個屬性的值只與該元素有關,與周圍元素(父級和子級元素無關)。
offsetWidth=(border-width)*2+(padding-left)+(width)+(padding-right)

offsetHeight=(border-width)*2+(padding-top)+(height)+(padding-bottom)

offsetLeft與offsetTop

offsetLeft與offsetTop這兩個屬性值與offsetParent有關。

offsetParent屬性返回一個對象的引用,這個對象是距離調用offsetParent的元素最近的(在包含層次中最靠近的),并且是已進行過CSS定位的容器元素。 如果這個容器元素未進行CSS定位, 則offsetParent屬性的取值為根元素(即body元素)的引用。

兩條規(guī)則:

如果當前元素的父級元素沒有進行CSS定位(position為absolute或relative),offsetParent為body。

如果當前元素的父級元素中有CSS定位(position為absolute或relative),offsetParent取最近的那個父級元素。

offsetLeft:對象元素邊界的左上角頂點相對于offsetParent的左上角頂點的水平偏移量;

offsetTop:對象元素邊界的左上角頂點相對于offsetParent的左上角頂點的垂直偏移量;

offsetLeft=(offsetParent的padding-left)+(中間元素的offsetWidth)+(當前元素的margin-left)

offsetTop=(offsetParent的padding-top)+(中間元素的offsetHeight)+(當前元素的margin-top)

當offsetParent為body時情況比較特殊:

在IE8/9/10及Chrome中:
offsetLeft = (body的margin-left)+(body的border-width)+(body的padding-left)+(當前元素的margin-left)。

在FireFox中:
offsetLeft = (body的margin-left)+(body的padding-left)+(當前元素的margin-left)

以上就是小編為大家?guī)淼腏S中位置與大小的獲取方法全部內容了,希望大家多多支持腳本之家~

相關文章

  • javascript 彈出層組件(升級版)

    javascript 彈出層組件(升級版)

    前面文章里寫過一個彈出層對話框,但ie6下有bug,根本沒有實現(xiàn)position:fixed的效果,當時沒有真實ie6環(huán)境,測試疏忽,匆匆放到博客上,還讓一些讀者看到甚至使用,在這里表示萬分抱歉啊
    2011-05-05
  • javascript靜態(tài)頁面?zhèn)髦档娜N方法分享

    javascript靜態(tài)頁面?zhèn)髦档娜N方法分享

    這篇文章介紹了javascript靜態(tài)頁面?zhèn)髦档娜N方法及優(yōu)缺點,有需要的朋友可以參考一下
    2013-11-11
  • 使用PHP+JavaScript將HTML頁面轉換為圖片的實例分享

    使用PHP+JavaScript將HTML頁面轉換為圖片的實例分享

    這篇文章主要介紹了使用PHP+JavaScript將HTML元素轉換為圖片的實例分享,文后結果的截圖只能體現(xiàn)出替換的字體,也不能說將靜態(tài)頁面轉為圖片可以加快加載,只是這種做法比較interesting XD需要的朋友可以參考下
    2016-04-04
  • 微信內置瀏覽器圖片查看器的代碼實例

    微信內置瀏覽器圖片查看器的代碼實例

    這篇文章主要介紹了微信內置瀏覽器圖片查看器的代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • JavaScript常用腳本匯總(三)

    JavaScript常用腳本匯總(三)

    本文給大家分享的常用腳本有通過數(shù)組,拓展字符串拼接容易導致性能的問題、頁面 視口 滾動條的位置的輔助函數(shù)、調節(jié)元素透明度的函數(shù)、獲取鼠標位置的幾個通用的函數(shù)、使用cssdisplay屬性來切換元素可見性的一組函數(shù)、樣式相關的通用函數(shù)、獲取元素當前的高度和寬度。
    2015-03-03
  • JavaScript 生成唯一ID的幾種方式

    JavaScript 生成唯一ID的幾種方式

    這篇文章主要介紹了JavaScript 生成唯一ID的幾種方式,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2021-02-02
  • javascript基于DOM實現(xiàn)權限選擇實例分析

    javascript基于DOM實現(xiàn)權限選擇實例分析

    這篇文章主要介紹了javascript基于DOM實現(xiàn)權限選擇的方法,實例分析了javascript針對頁面元素的動態(tài)選擇與添加刪除等操作的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • JS 獲取select(多選下拉)中所選值的示例代碼

    JS 獲取select(多選下拉)中所選值的示例代碼

    通過js獲取select(多選下拉)中所選值,具體實現(xiàn)如下,有需要的朋友可以參考下,希望對大家有所幫助
    2013-08-08
  • js實現(xiàn)彈出框的拖拽效果實例代碼詳解

    js實現(xiàn)彈出框的拖拽效果實例代碼詳解

    本文通過實例代碼給大家介紹了js實現(xiàn)彈出框的拖拽效果,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-04-04
  • JavaScript通過字符串調用函數(shù)的實現(xiàn)方法

    JavaScript通過字符串調用函數(shù)的實現(xiàn)方法

    這篇文章主要介紹了JavaScript通過字符串調用函數(shù)的實現(xiàn)方法,實例分析了javascript動態(tài)調用函數(shù)的技巧,需要的朋友可以參考下
    2015-03-03

最新評論

崇明县| 油尖旺区| 灵台县| 大冶市| 利津县| 舟山市| 秦安县| 鄂托克前旗| 平安县| 商水县| 东宁县| 清水县| 彭山县| 龙川县| 油尖旺区| 沙坪坝区| 民勤县| 衡阳县| 垣曲县| 漳浦县| 炎陵县| 连城县| 南京市| 乌拉特后旗| 沛县| 永春县| 密山市| 隆化县| 永春县| 蓬安县| 乐清市| 柯坪县| 湘西| 新龙县| 阿瓦提县| 郓城县| 芜湖市| 小金县| 鄂尔多斯市| 龙泉市| 根河市|