JavaScript四大家族之offset家族

简介: javascript 元素对象拥有offset家族5大属性(offset家族和position紧密相连) offsetWidth:"元素内容的宽度"          (border+padding+width) offsetHeight:"元素内容的高度"          (border...

javascript 元素对象拥有offset家族5大属性(offset家族和position紧密相连)

 

offsetWidth:"元素内容的宽度"          (border+padding+width)

 

offsetHeight:"元素内容的高度"          (border+padding+height)

 

offsetLeft:"元素与浏览器客户端左侧的距离"    (与其父级层级最近的定位元素左侧距离)

 

offsetTop:"元素与浏览器客户端顶侧的距离"    (与其父级层级最近的定位元素顶侧距离)

 

offsetParent:"元素父级元素"          (得到其父级层级最近的定位元素对象)

 

运行下列代码尝试一下

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>offset</title>
 9     <style>
10         * {
11             padding: 0;
12             margin: 0;
13         }
14 
15         .box {
16             border: 2px solid #caa;
17             padding: 1px;
18             width: 200px;
19             height: 200px;
20             background-color: yellow;
21         }
22 
23         .bigbox {
24             margin: 100px;
25             width: 200px;
26             height: 200px;
27             position: relative;
28             padding: 10px;
29             border: 1px solid red;
30         }
31 
32         .mask {
33             position: fixed;
34             right: 0;
35             bottom: 0;
36             width: 200px;
37             height: 200px;
38             background-color: red;
39         }
40     </style>
41 </head>
42 
43 <body>
44     <div id="j_mask" class="mask"></div>
45     <div id="j_bigbox" class="bigbox">
46         <div id="j_box" class="box"></div>
47     </div>
48     <button id="j_btnoffset">offset</button>
49     <button id="j_btnoffsetParent">offsetParent</button>
50 </body>
51 
52 </html>
53 <script>
54     (function () {
55         var j_btnoffset = document.getElementById("j_btnoffset"),
56             j_box = document.getElementById("j_box"),
57             j_bigbox = document.getElementById("j_bigbox"),
58             j_mask = document.getElementById("j_mask"),
59             j_btnoffsetParent = document.getElementById("j_btnoffsetParent");
60         j_btnoffset.onclick = function () {
61             var strHtml = "<p>";
62 
63             strHtml += "offsetWidth : " + j_box.offsetWidth + "";
64             strHtml += "</p>"
65             strHtml += "<p>";
66             strHtml += "offsetHeight : " + j_box.offsetHeight + "";
67             strHtml += "</p>";
68             strHtml += "<p>";
69             strHtml += "offsetLeft : " + j_box.offsetLeft + "";
70             strHtml += "</p>";
71             strHtml += "<p>";
72             strHtml += "offsetTop : " + j_box.offsetTop + "";
73             strHtml += "</p>";
74 
75             j_mask.innerHTML = strHtml;
76         };
77         j_btnoffsetParent.onclick = function () {
78             console.log(j_box.offsetParent);
79         }
80     }());
81 
82 </script>

 

 

注:当父级到body时,则以body为参照物

目录
相关文章
|
1月前
|
存储 自然语言处理 前端开发
详谈JavaScript 二进制家族:Blob、File、FileReader、ArrayBuffer、Base64
详谈JavaScript 二进制家族:Blob、File、FileReader、ArrayBuffer、Base64
25 1
|
Web App开发 存储 JSON
JS的二进制家族:Blob的具体介绍
Data URL对大家来说并不陌生,Web性能优化有一项措施:把小图片用base64编码直接嵌入到HTML文件中,实际就是利用了Data URL来获取图片数据。
|
JSON JavaScript 前端开发
JS的二进制家族:ArrayBuffer的具体介绍
ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。ArrayBuffer 不能直接操作,而是要通过类型数组对象 或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。
|
存储 XML 前端开发
JS的二进制家族:Blob、ArrayBuffer和Buffer
ArrayBuffer:前端的一个通用的二进制缓冲区,类似数组,但在API和特性上却有诸多不同
JS的二进制家族:Blob、ArrayBuffer和Buffer
|
JavaScript 前端开发
JavaScript四大家族之scroll家族
javascript 元素对象拥有scroll家族主要属性:   ScrollTop:  (被滚动条卷去的头部高度)   ScrollLeft:  (被滚动条卷曲的左侧距离)   ScrollWidth  (内容实际宽度:width+padding+超出盒子的宽度)   ScorllHeight  (内容实际高度:height+padding+超出盒子的高度)   Scroll可通过元素对象的属性ScrollTop和ScrollLeft找到它。
1145 0
|
JavaScript 前端开发
JavaScript四大家族之client家族
javascript 元素对象拥有client家族主要属性:   clientHeight:  (可见区域高度:height+padding)   clientWidth:  (可见区域宽度:width+padding)   clientLeft  (资料显示是当前元素的offsetLeft距离当前...
1156 0
|
JavaScript 前端开发
JavaScript四大家族之event家族
event是javascript 元素对象的事件处理程序function(event){}所拥有的事件对象其中最主要(用的最多)的属性是   event对象存在兼容性。IE678的event对象为Window.
986 0
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
27 0
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
75 0
|
8天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习