原生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 相关文章推荐
jQuery.getScript加载同域JS的代码
Feb 13 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
Feb 19 Javascript
jQuery实现列表内容的动态载入特效
Aug 08 Javascript
JS封装的选项卡TAB切换效果示例
Sep 20 Javascript
微信小程序 登录实例详解
Jan 16 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
Apr 06 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 Javascript
JavaScript的级联函数用法简单示例【链式调用】
Mar 26 Javascript
vue列表单项展开收缩功能之this.$refs的详解
May 05 Javascript
Vue.js数字输入框组件使用方法详解
Oct 19 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
Jun 02 Javascript
详解javascript脚本何时会被执行
Feb 05 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
php 过滤器实现代码
2010/08/09 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
深入学习python的yield和generator
2016/03/10 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
python实现简单井字棋游戏
2020/03/04 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
教师实习自我鉴定
2013/12/13 职场文书
生产班组长岗位职责
2014/01/05 职场文书
高中军训感想300字
2014/03/04 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
小组口号霸气押韵
2015/12/24 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书