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过滤选择器:not()方法使用介绍
Apr 20 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
Sep 22 Javascript
Node.js与MySQL交互操作及其注意事项
Oct 05 Javascript
JavaScript 数组的深度复制解析
Nov 02 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
js实现楼层导航功能
Feb 23 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
Jun 19 Javascript
vue弹窗插件实战代码
Sep 08 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
May 06 Javascript
微信小程序与webview交互实现支付功能
Jun 07 Javascript
webpack自动打包和热更新的实现方法
Jun 24 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 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
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
PHP 中文乱码解决办法总结分析
2009/07/30 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
深入php之规范编程命名小结
2013/05/15 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
python爬虫基础之urllib的使用
2020/12/31 Python
python自动生成sql语句的脚本
2021/02/24 Python
html5清空画布方法(三种)
2017/10/16 HTML / CSS
小班下学期评语
2014/05/04 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
消防宣传口号
2014/06/16 职场文书
环境工程专业自荐信范文
2014/06/24 职场文书
十佳党员事迹材料
2014/08/28 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js