JS获取各种宽度、高度的简单介绍


Posted in Javascript onDecember 19, 2014

有时候项目中会用到用js获取元素位置来定位元素,首先通过图片说明scrollWidth,clientWidth,offsetWidth的关系。

JS获取各种宽度、高度的简单介绍

JS获取各种宽度、高度的简单介绍

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

以上主要指IE之中,FireFox差异如下:

IE6.0、FF1.06+:

clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border

IE5.0/5.5:

clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

offsetWidth (width+padding+border)

假设 obj 为某个 HTML 控件。

obj.offsetTop 指 obj 距离上方或上层控件的位置,整型,单位像素。

obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素。

obj.offsetWidth 指 obj 控件自身的宽度,整型,单位像素。获取对象可见内容的宽度,不包括滚动条,不包括边框;

obj.offsetHeight 指 obj 控件自身的高度,整型,单位像素。

offsetWidth 与 style.width 的区别

一、offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。

二、offsetTop 只读,而 style.top 可读写。

三、如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。

Javascript 相关文章推荐
jquery调用wcf并展示出数据的方法
Jul 07 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
Dec 29 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
Feb 06 Javascript
jquery实现的点击翻书效果代码
Nov 04 Javascript
Node.js文件操作方法汇总
Mar 22 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
Jul 05 Javascript
JavaScript对象创建模式实例汇总
Oct 03 Javascript
JS中from 表单序列化提交的代码
Jan 20 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
Dec 15 Javascript
webpack中如何使用雪碧图的示例代码
Nov 11 Javascript
layui写后台表格思路和赋值用法详解
Nov 14 Javascript
Js实现粘贴上传图片的原理及示例
Dec 09 Javascript
JQuery右键菜单插件ContextMenu使用指南
Dec 19 #Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
Dec 19 #Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 #Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
Dec 18 #Javascript
jQuery实现视频作为全屏幕背景
Dec 18 #Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
Dec 18 #Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 #Javascript
You might like
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
php download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
php数组去重的函数代码
2013/02/03 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
兼容ie和firefox js关闭代码
2008/12/11 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
js获取内联样式的方法
2015/01/27 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
python生成日历实例解析
2014/08/21 Python
django实现分页的方法
2015/05/26 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
Tesserocr库的正确安装方式
2018/10/19 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
Python下载的11种姿势(小结)
2020/11/18 Python
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
警示教育活动总结
2014/05/05 职场文书
勤俭节约主题班会
2015/08/13 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python