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 动态酷效果实现总结
Dec 27 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
Jul 17 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
Aug 01 Javascript
解决js正则匹配换行问题实现代码
Dec 10 Javascript
javascript中的取反再取反~~没有意义
Apr 06 Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
JavaScript中的高级函数
Jan 04 Javascript
在vscode中统一vue编码风格的方法
Feb 22 Javascript
vuex存值与取值的实例
Nov 06 Javascript
Vue 中 filter 与 computed 的区别与用法解析
Nov 21 Javascript
vue中activated的用法
Jan 03 Vue.js
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
PHP 八种基本的数据类型小结
2011/06/01 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
实现JavaScript中继承的三种方式
2009/10/16 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
python线程里哪种模块比较适合
2020/08/02 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
Linux Interview Questions For software testers
2012/06/02 面试题
《颐和园》教学反思
2014/02/26 职场文书
大学毕业感言200字
2014/03/09 职场文书
出国留学经济担保书
2014/04/01 职场文书
个人买房协议书范本
2014/10/06 职场文书
西柏坡导游词
2015/02/05 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
二婚主持词
2015/06/30 职场文书
公司管理制度范本
2015/08/03 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL