js获取元素的页面坐标
一、DOM中各种宽度、高度
二、DOM中的坐标系
JS获取div元素的宽度
offsetWidth=width+padding-left+padding-right+border-left+border-right,
即offsetWidth描述的是元素的宽度,是指元素的宽度+内边距(左右两个)+边框(左右两个),不包括外边距和滚动条部分
offsetHeight=height+padding-top+padding-bottom+border-top+border-bottom,
即offsetHeight描述的是元素的高度,是指元素的高度+内边距(上下两个)+边框(上下两个),不包括外边距和滚动条部分
offsetTop=margin-top+padding-top(parent的)
即offsetTop描述的是元素和父容器的上边距离,是指元素的外边距(上边一个)+已定位的父容器(offsetParent)的内边距(上边一个)(不包括元素的边框和父容器的边框)
offsetLeft=margin-left+padding-left(parent的)
即offsetLeft描述的是元素和父容器的左边距离,是指元素的外边距(左边一个)+已定位的父容器(offsetParent)的内边距(左边一个)(不包括元素的边框和父容器的边框)
clientWidth=width+padding-left+padding-right
即clientWidth描述的是元素的宽度,是指元素的宽度+内边距(左右两个),不包括外边距、滚动条部分、边框
clientHeight=height+padding-top+padding-bottom
即clientHeight描述的是元素的高度,是指元素的高度+内边距(上下两个),不包括外边距、滚动条部分、边框
clientTop=border-top
即clientTop是指当前元素的上边框
clientLeft=border-left
即clientLeft是指当前元素的左边框
scrollWidth=width+padding-left+padding-right
即元素的滚动条宽度,是指宽度+内边距(左右两个),值等价于“clientWidth”的值
scrollHeight=height+padding-top+padding-bottom
即元素的滚动条高度,是指高度+内边距(上下两个),值等价于“clientHeight”的值
scrollTop元素的滚动条的垂直位置
scrollLeft元素的滚动条的水平位置
注:
http://www.cnblogs.com/kongxianghai/p/4192032.html
情况1:
元素内无内容或者内容不超过可视区,滚动不出现或不可用的情况下。
scrollWidth=clientWidth,两者皆为内容可视区的宽度。
offsetWidth为元素的实际宽度。
情况2:
元素的内容超过可视区,滚动条出现和可用的情况下。
scrollWidth>clientWidth。
scrollWidth为实际内容的宽度。
clientWidth是内容可视区的宽度。
offsetWidth是元素的实际宽度。
滚动条属性:
overflow:auto为自动,yes为有,no为无
overflow-x:横向滚动条
overflow-y:纵向滚动条
如果该div被包含在其他对象例如td中,则位置可设为相对:position:relative
特别是元素内容超过可视区,这里的滚动条宽度有点不太清楚
示例:
<div id="divParent" style="position:relative; background:#36F; padding:5px; border:2px solid #FF0; width:300px; overflow:auto;">
<div id="divChild" style="width:400px; height:100px; border:1px solid #fff; background:#69F; margin:20px; padding:10px;
"></div>
</div> <script type="text/javascript">
var div = document.getElementById("divChild");
var childWidth = div.offsetWidth;
var childHeight = div.offsetHeight;
var childTop = div.offsetTop;
var childLeft = div.offsetLeft; div.innerHTML += "childWidth:" + childWidth + "<br />";
div.innerHTML += "childHeight:" + childHeight + "<br />";
div.innerHTML += "childTop:" + childTop + "<br />";
div.innerHTML += "childLeft:" + childLeft + "<br />"; var childParent = div.offsetParent;
div.innerHTML += "childParent:" + childParent.id + "<br />"; var clientWidth = div.clientWidth;
var clientHeight = div.clientHeight;
var clientTop = div.clientTop;
var clientLeft = div.clientLeft; div.innerHTML += "clientwidth:" + clientWidth + "<br />";
div.innerHTML += "clientHeight:" + clientHeight + "<br />";
div.innerHTML += "clientTop:" + clientTop + "<br />";
div.innerHTML += "clientLeft:" + clientLeft + "<br />"; //div.innerHTML = "";
var divParent = document.getElementById("divParent");
var scrollWidth = divParent.scrollWidth;
var scrollHeight = divParent.scrollHeight;
var scrollTop = divParent.scrollTop;
var scrollLeft = divParent.scrollLeft;
div.innerHTML+= "scrollWidth:" + scrollWidth + "<br />";
div.innerHTML+= "scrollHeigth:" + scrollHeight + "<br />";
div.innerHTML+= "scrollTop:" + scrollTop + "<br />";
div.innerHTML+= "scrollLeft:" + scrollLeft + "<br />";
</script>
js获取元素的页面坐标的更多相关文章
- js 获取元素在页面上的偏移量的最佳方式
使用js制作效果时,我们常常要获取某个元素在页面上的偏移量(例如tip提示框功能).而获取偏移量可以直接获取相对于document的偏移量,也可以获取相对与视口的偏移量(viewpoint)加上页面滚 ...
- js 获取元素坐标 和鼠标点击坐标
js 获取元素的位置 var odiv=document.getElementById('divid'); alert(odiv.getBoundingClientRect().left); aler ...
- 【全面总结】js获取元素位置大小
[js获取元素位置+元素大小]全面总结 目录 1.关于offset offsetParent(只读) offsetTop(只读) offsetLeft(只读) offsetHeight(只读) off ...
- js获取元素位置和style的兼容性写法
今天说一下js获取元素位置和style的方法.当然不只是element.style那么简单.. 主角:getBoundingClientRect,getClientRects,getComputedS ...
- js获取元素的外链样式
一般给元素设置行内样式,如<div id="div1" style="width:500px;"></div>.如要获取它的样式,即可d ...
- js点击获取—通过JS获取图片的相对坐标位置
一.通过JS获取鼠标点击时图片的相对坐标位置 源代码如下所示: <!DOCTYPE html> <html lang="en"> <head> ...
- jquery获取元素到页面顶部距离
jquery获取元素到页面顶部距离的语句为: $(selector).offset().top
- js获取元素提示信息
js获取元素提示信息 var date=$("#date").attr('placeholder'); js修改元素的提示信息 $("#date").attr( ...
- JS获取元素宽高的两种情况
JS获取元素宽高分两种情况, 一.内联样式,也就是直接把width和height写在HTML元素中的style里: 这种情况使用 document.getElementById('xxx'). ...
随机推荐
- Nwjs简单配置
1.创建一个工程,配置一个 package.json 文件 { "name": "application-name", "version" ...
- bzoj3622
容斥原理 看见恰好k个就要容斥 g[i]表示有几个b比a小 dp[i][j]表示前i个数至少有j个大的方案数,dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*(g[i]-j+1),就 ...
- nohup不输出日志信息的方法及linux重定向
最近使用nohup创建了一个后台进程,默认日志输出到了nohup.out文件中,程序跑起来也就没再管,过了大约一周,发现硬盘空间不够了,于是查找原因,发现这个nohup.out文件已经到了70G了,导 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器
在MVC的请求管道 并不是 asp.net core的请求管道.所以说Filter是专用于MVC的 贯穿特性,横穿关注点.比如授权.日志 这里的Authorize其实就是一个Filter,主要用来授 ...
- vue.eslintrc.js常用配置
vue.eslintrc.js module.exports = { root: true, env: { node: true }, extends: [ "plugin:vue/esse ...
- 洛谷 - P2281 - 多项式的加法和乘法 - 大模拟
题目链接:https://www.luogu.org/problemnew/show/P2281 题目的意思很简单,输入两个系数.指数都是整数,变量都是大写字母的多项式,求他们的加法结果和乘法结果. ...
- 给定一个数字n,生成n对可能的小括号组合
示例: 输入:n为3 输出:[ "((()))", "(()())" "(())()", "()(())", " ...
- Codeforces710C【数学】
n阶幻方问题::http://blog.csdn.net/fengchaokobe/article/details/7437767 学一下就好啦~ 奇幻七绝 先填上行正中央, 依次斜填切莫忘. 上格没 ...
- 洛谷P2824 [HEOI2016/TJOI2016]排序(线段树)
传送门 这题的思路好清奇 因为只有一次查询,我们考虑二分这个值为多少 将原序列转化为一个$01$序列,如果原序列上的值大于$mid$则为$1$否则为$0$ 那么排序就可以用线段树优化,设该区间内$1$ ...
- String字符串操作题
/** * 反转键盘录入字符串 * 反转键盘录入的字符串 * 反转键盘录入的字符串 * 反转键盘录入的字符串 * */ Scanner sc = new Scanner(System.in);Stri ...