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 相关文章推荐
如何在标题栏显示框架内页面的标题
Feb 03 Javascript
js 调整select 位置的函数
Feb 21 Javascript
Javascript面向对象编程(二) 构造函数的继承
Aug 28 Javascript
js中关于一个分号的崩溃示例
Nov 11 Javascript
jquery实现删除一个元素后面的所有元素功能
Dec 21 Javascript
阻止表单提交按钮多次提交的完美解决方法
May 16 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
Jun 12 Javascript
vue下跨域设置的相关介绍
Aug 26 Javascript
ionic选择多张图片上传的示例代码
Oct 10 Javascript
通过js动态创建标签,并设置属性方法
Feb 24 Javascript
vue实现井字棋游戏
Sep 29 Javascript
react中useState使用:如何实现在当前表格直接更改数据
Aug 05 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
php下的权限算法的实现
2007/04/28 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
php命令行写shell实例详解
2018/07/19 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
js document.write()使用介绍
2014/02/21 Javascript
javascript实现微信分享
2014/12/23 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
JavaScript 自定义事件之我见
2017/09/25 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
python2.x实现人民币转大写人民币
2018/06/20 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
python实现C4.5决策树算法
2018/08/29 Python
PHP统计代码行数的小代码
2019/09/19 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
python字典按照value排序方法
2020/12/28 Python
初一学生期末评语
2014/04/24 职场文书
节水标语大全
2014/06/11 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
归途列车观后感
2015/06/17 职场文书