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 相关文章推荐
Array.prototype.slice 使用扩展
Jun 09 Javascript
jQuery1.6 使用方法二
Nov 23 Javascript
一行命令搞定node.js 版本升级
Jul 20 Javascript
js密码强度校验
Nov 10 Javascript
AngularJS实现单独作用域内的数据操作
Sep 05 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
Nov 23 Javascript
jQuery实现标签页效果实战(4)
Feb 08 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
Node.js五大应用性能技巧小结(必须收藏)
Aug 09 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
Jun 10 Javascript
JS函数本身的作用域实例分析
Mar 16 Javascript
基于JS实现视频上传显示进度条
May 12 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网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
Python实现的快速排序算法详解
2017/08/01 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
python去掉空白行的多种实现代码
2018/03/19 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
Django中template for如何使用方法
2021/01/31 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
新闻记者实习自我鉴定
2013/09/19 职场文书
团日活动总结书
2014/05/08 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书