技术标签: offset 三大家族 scroll client JavaScript学习笔记 javascript
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>获取元素尺寸</title>
<style>
body {
background: #f1f1f1;
margin: 0;
}
#parent {
width: 400px;
height: 400px;
/*消除 margin-top问题*/
padding-top: 1px;
background: lightgray;
/*position: relative;*/
margin: 50px;
border: 50px solid blue;
overflow-y: scroll;
}
#child {
width: 100px;
height: 100px;
background: green;
margin: 50px;
border: 50px solid red;
padding: 50px;
overflow-y: scroll;
}
</style>
</head>
<body>
<div id="parent">
<div id="child">
黄色部分为子元素,方便查看父节点内容区域,黄色部分为子元素,方便查看父节点内容区域,
</div>
</div>
<script>
const element = document.getElementById("child");
console.log("offsetParent:", element.offsetParent);
console.log("offsetWidth:", element.offsetWidth);
console.log("offsetHeight:", element.offsetHeight);
console.log("offsetLeft:", element.offsetLeft);
console.log("offsetTop:", element.offsetTop);
</script>
</body>
</html>
<!--结果-->
offsetParent: <body>
Offset.html:41:15
offsetWidth: 300 Offset.html:42:15
offsetHeight: 300 Offset.html:43:15
offsetLeft: 150 Offset.html:44:15
offsetTop: 151 Offset.html:45:15
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hEFLNLrC-1608553256252)(https://media.prod.mdn.mozit.cloud/attachments/2012/07/09/346/e376ef78f757870d6d5327498c745681/Dimensions-client.png)]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>获取元素尺寸</title>
<style>
body {
background: #f1f1f1;
margin: 0;
}
#parent {
width: 400px;
height: 400px;
/*消除 margin-top问题*/
padding-top: 1px;
background: lightgray;
position: relative;
margin: 50px;
border: 50px solid blue;
overflow-y: scroll;
}
#child {
width: 100px;
height: 100px;
background: green;
margin: 50px;
border: 60px solid red;
padding: 50px;
/*box-sizing: border-box;*/
}
</style>
</head>
<body>
<div id="parent">
<div id="child">
黄色部分为子元素,方便查看父节点内容区域,黄色部分为子元素,方便查看父节点内容区域,
</div>
</div>
<script>
const element = document.getElementById("child");
console.log("clientWidth:", element.clientWidth);
console.log("clientHeight:", element.clientHeight);
console.log("clientLeft:", element.clientLeft);
console.log("clientTop:", element.clientTop);
</script>
</body>
</html>
<!--输出结果-->
clientWidth: 200 Offset.html:41:15
clientHeight: 200 Offset.html:42:15
clientLeft: 60 Offset.html:43:15
clientTop: 60 Offset.html:44:15
可以读取或设置元素滚动条到元素左边的距离
可以获取或设置一个元素的内容垂直滚动的距离
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>获取元素尺寸</title>
<style>
body {
background: #f1f1f1;
margin: 0;
}
#parent {
width: 400px;
height: 400px;
/*消除 margin-top问题*/
padding-top: 1px;
background: lightgray;
position: relative;
margin: 50px;
border: 50px solid blue;
}
#child {
width: 100px;
height: 100px;
background: green;
margin: 50px;
border: 60px solid red;
padding: 50px;
overflow-y: scroll;
}
#child::before {
content: "\A\A\A";
width: 100px;
}
</style>
</head>
<body>
<div id="parent">
<div id="child">
黄色部分为子元素,方便查看父节点内容区域,黄色部分为子元素,方便查看父节点内容区域,
</div>
</div>
<script>
const element = document.getElementById("child");
console.log("scrollWidth:", element.scrollWidth);
console.log("scrollHeight:", element.scrollHeight);
console.log("scrollTop:", element.scrollTop);
console.log("scrollLeft:", element.scrollLeft);
element.scrollTop = 10;
console.log("scrollTop:", element.scrollTop);
element.addEventListener("scroll", (e) => {
console.log("scrollTop:", element.scrollTop);
});
console.log("offsetHeight:", element.clientHeight);
if (element.scrollHeight > element.clientHeight) {
console.log("内容溢出,需要滚动");
}
</script>
</body>
</html>
参考链接
JavaBean转jsonString时首字母大写的问题这次出差,对接第三方发行系统,又出现了大驼峰命名的json字符串,因此做个笔记记录下。约定俗成的,JavaBean的属性采用小驼峰命名法。但是,在对接接口的过程中,如果是要去接入别人的接口,如果对方没有使用约定俗成的小驼峰命名,那么也只能自己做出调整适配了。这样的事情也遇到过几次了。有的是对接自己公司php的接口,有的是对接第三方系统的...
Could not read script 'D:\001_Programs\004_Flutter\flutter\packages\flutter_tools\gradle\app_plugin_loader.gradle' as it does not exist.
Description:模板题没啥好说的prim:#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;algorithm&gt;using namespace std;const int INF = 0x3f3f3f;int Map[30][30]...
这几天一直在做Java解析Json数据的一个项目,因为初识json,所以很多东西都是有着懵懂的认识。这里写下我解析时遇到的问题和收获。我解析json时用到的是json-lib包。下载地址:http://json-lib.sourceforge.net。用这个包时,还要用到其他几个支持包:commons-lang.jar、commons-logging.jar,commons-beanutils.j...
点击liscense server,输入以下链接http://idea.toocruel.net(2018.8.14更新 可用)http://idea.tooadmin.nethttp://idea.congm.in亲测有效!!!
ajax乱码解决总结第一,javascript沿用java的字符处理方式,内部是使用unicode来处理所有字符的,第二,utf-8是每个汉字(unicode字符)用3个字节来存储。第三,用utf-8来send数据是不会出现乱码的,是后台程序没有正确解码才会出现乱码。第四,ajax发送数据的时候如果修改 Content-Type 为 application/x-www-form-url...
安装很多次mysql,linux,windows版本的都有遇到的问题,总是不总结,结果就是走很多弯路,所以此次记录一下。1.首先安装完mysql8.0.21 后,发现无my.ini,解决办法1)默认安装到c盘会自动隐藏,记得打开隐藏文件找到他2)找不到的情况下,在mysql的安装目录下新建my.ini文件(注意:刚新建完是没有小齿轮的,需要以下配置信息添加进去)# For advice on ho...
最近几天,一直纠结于android的时间的自动更新,先简要说下android自己原有的更新机制,android原有的更新机制很简单,是采用NITZ(Network identity and Time Zone)的方式更新的,这应该是一种运营商的可选服务,简单的来说,就是运营商通知CP主动上报时间信息,CP上报后上层更新相应的时间。CDMA制式估计上报时间比较频繁,更新比较给力,因此CDMA制式的时
MIT 18.06 linear algebra 第九课笔记第九课课程要点:linear independentsapnning a spaceBASIC and dimension假设有一个矩阵AA是m×nm\times n大小的,且mnm。那么Ax=0Ax=0有无限多个非零解(non-zero)。因为这个矩阵中对应的线性方程组中存在着自由变量。假设有向量x1,x
【转载】 第三代透明加密技术透明加密技术是近年来针对企业数据保密需求应运而生的一种数据加密技术。所谓透明,是指对使用者来说是透明的,感觉不到加密存在,当使用者在打开或编辑指定文件时,系统将自动对加密的数据进行解密,让使用者看到的是明文。保存数据的时候,系统自动对数据进行加密,保存的是密文。而没有权限的人,无法读取保密数据,从而达到数据保密的效果。 自WindowsNT问世以来,微软
蠢事总结主观意识太强,按照自己的想法干事(自以为是的对的事)写的调试代码,IS_DEUBG环境下会执行的代码。由于线上环境的不熟悉,导致线上程序,运行到到测试代码中。导致严重后果。这个是在小额贷款公司。许多放款没有被放出去。修数据修了一天重写可用优惠券接口,调整了别人代码的顺序,导致部分条件失效,一个小时多发四万多的优惠券退款reponse copy别人写的结果处理,导致和自己写的逻...
1004 Counting Leaves题目描述A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.Input Specification:Each input file contains one tes...