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 相关文章推荐
JavaScript 应用技巧集合[推荐]
Aug 30 Javascript
js 与或运算符 || && 妙用
Dec 09 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
基于jQuery实现的文字按钮表单特效整理
Dec 07 Javascript
JavaScript面向对象的实现方法小结
Apr 14 Javascript
javascript对象的创建和访问
Mar 08 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 Javascript
BootstrapTable refresh 方法使用实例简单介绍
Feb 20 Javascript
AngularJS基于MVC的复杂操作实例讲解
Dec 31 Javascript
解决Vue打包后访问图片/图标不显示的问题
Jul 25 Javascript
微信小程序仿今日头条导航栏滚动解析
Aug 20 Javascript
手写实现JS中的new
Nov 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
PHP动态图像的创建
2006/10/09 PHP
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
PHP制作图型计数器的例子
2006/10/09 PHP
PHP代码审核的详细介绍
2013/06/13 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
原生js获取元素样式的简单方法
2016/08/06 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
泰国网上购物:Shopee泰国
2018/09/14 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
班队活动设计方案
2014/01/30 职场文书
建筑投标担保书
2014/05/20 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
优秀员工自荐书
2015/03/06 职场文书
英文辞职信范文
2015/05/13 职场文书
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL