原生js获取宽高与jquery获取宽高的方法关系对比


Posted in Javascript onApril 04, 2014

说明:1、因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况。

 2、以下所说的所有方法与属性所返回的值都是不带单位的。

 3、为了方便说明,以下情况采用缩写表示:

obj -> 在原生JS中表示DOM对象;在JQuery中表示JQuery对象

Width -> obj.style.width

OffsetWidth -> obj.offsetWidth

$width -> obj.width()

$innerWidth -> obj.innerWidth()

$outerWidth -> obj.outerWidth()

padding -> 表示对象的padding-left和padding-right之和

border -> 表示对象的border-left-width和border-right-width之和

原生JS获取宽度的相关属性有 width和offsetWidth。width的获取方法是obj.style.width,只有当对象是通过内嵌方式设定宽度时才能获得,否则返回的是一个空字符串。offsetWidth获得的值跟JQuery中获得对象的outerWidth一样,offsetWidth是非标准的但却得到很好支持的属性。

JQuery获得宽度的方法有width()、innerWidth()、outerWidth()这三种方法。具体使用方式是:obj.width()、obj.innerWidth()、obj.outerWidth()。width()获得的是对象的内容宽度,innerWidth()获得的是对象的内容宽度与填充宽度的和,outerWidth()获得的是包括边框、填充宽度与内容宽度在内的宽度。

这五种方法之间的关系如下:

width = $width;
offsetWidth = border + padding +width;
$innerWidth = padding + width;
$outerWidth = border + padding +width;

这五种方法对firefox、chrome、opera、safari、ie6、ie7、ie8、ie9都兼容,只是存在着两种问题:1、width在没有设定的情况下,chrome在第一次打开页面时,所获取到的宽度全部都是错误的。第二次打开时,结果就跟firefox一致。2、ie6未设定宽高的情况下,不会出现滚动条。

Javascript 相关文章推荐
node.js中的fs.lchownSync方法使用说明
Dec 16 Javascript
JavaScript字符串检索字符的方法
Jun 23 Javascript
表格展示利器 Bootstrap Table实例代码
Sep 06 Javascript
利用JS实现scroll自定义滚动效果详解
Oct 17 Javascript
webstorm和.vue中es6语法报错的解决方法
May 08 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
Sep 03 jQuery
jQuery实现左右两个列表框的内容相互移动功能示例
Jan 27 jQuery
解决vue打包后vendor.js文件过大问题
Jul 03 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
Jul 10 Javascript
小程序采集录音并上传到后台
Nov 22 Javascript
如何基于javascript实现贪吃蛇游戏
Feb 09 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
Apr 04 #Javascript
javascript中的循环语句for语句深入理解
Apr 04 #Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
Apr 04 #Javascript
调试代码导致IE出错的避免方法
Apr 04 #Javascript
javascript写的一个模拟阅读小说的程序
Apr 04 #Javascript
js 显示base64编码的二进制流网页图片
Apr 04 #Javascript
jquery scroll()区分横向纵向滚动条的方法
Apr 04 #Javascript
You might like
世界第一个无线广播电台 KDKA
2021/03/01 无线电
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
php HTML无刷新提交表单
2016/04/05 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
PHP之header函数详解
2021/03/02 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
Python生成器(Generator)详解
2015/04/13 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
办公室助理岗位职责
2013/12/25 职场文书
教师队伍管理制度
2014/01/14 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
同学聚会祝酒词
2015/08/10 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang