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 相关文章推荐
用window.location.href实现刷新另个框架页面
Mar 07 Javascript
javascript radio 联动效果
Mar 04 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
Jul 18 Javascript
jquery实现简单实用的打分程序实例
Jul 23 Javascript
javascript实现类似百度分享功能的方法
Jul 27 Javascript
JS中JSON对象和String之间的互转及处理技巧
Apr 06 Javascript
Kotlin学习第一步 kotlin语法特性
May 25 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
Sep 11 Javascript
node微信开发之获取access_token+自定义菜单
Mar 17 Javascript
JavaScript如何判断input数据类型
Feb 06 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
Dec 28 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
ftp类(myftp.php)
2006/10/09 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
javascript中万恶的function实例分析
2011/05/25 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
js实现表格筛选功能
2017/01/18 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
Python探索之修改Python搜索路径
2017/10/25 Python
python实现图片批量压缩程序
2018/07/23 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
python实现银行账户系统
2021/02/22 Python
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
web页面录屏实现
2019/02/12 HTML / CSS
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
代办委托书怎样写
2014/04/08 职场文书
广告业务员岗位职责
2015/02/13 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang