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 相关文章推荐
jQuery autocomplate 自扩展插件、自动完成示例代码
Mar 28 Javascript
JavaScript打印iframe内容示例代码
Aug 20 Javascript
jQuery应用之jQuery链用法实例
Jan 19 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
Feb 25 Javascript
gulp安装以及打包合并的方法教程
Nov 19 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 jQuery
ES6 Proxy实现Vue的变化检测问题
Jun 11 Javascript
jQuery层叠选择器用法实例分析
Jun 28 jQuery
转换layUI的数据表格中的日期格式方法
Sep 19 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
Dec 25 Javascript
详解微信小程序工程化探索之webpack实战
Apr 20 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 4.2书写安全的脚本
2006/10/09 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
使用graphics.py实现2048小游戏
2015/03/10 Python
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
python @property的用法及含义全面解析
2018/02/01 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
党员承诺书范文
2014/05/19 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
周末问候语大全
2015/11/10 职场文书
python基础详解之if循环语句
2021/04/24 Python