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 相关文章推荐
解析arp病毒背后利用的Javascript技术附解密方法
Aug 06 Javascript
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
如何防止JavaScript自动插入分号
Nov 05 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 Javascript
Bootstrap Fileinput文件上传组件用法详解
May 10 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
bootstrap flask登录页面编写实例
Nov 01 Javascript
js实现简易垂直滚动条
Feb 22 Javascript
JavaScript实现购物车基本功能
Jul 21 Javascript
微信小程序使用Promise简化回调
Feb 06 Javascript
详解开发react应用最好用的脚手架 create-react-app
Apr 24 Javascript
js+canvas实现画板功能
Sep 13 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调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
中学实习教师自我鉴定
2013/12/12 职场文书
初中生物教学反思
2014/01/10 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
小学中队委竞选稿
2015/11/20 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang