原生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 相关文章推荐
JS 自动安装exe程序
Nov 30 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
Jan 24 Javascript
Jquery实现简单的动画效果代码
Mar 18 Javascript
iframe实用操作锦集
Apr 22 Javascript
jquery+ajax验证不通过也提交表单问题处理
Dec 12 Javascript
jQuery实现无限往下滚动效果代码
Apr 16 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
js 动态生成html 触发事件传参字符转义的实例
Feb 14 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
微信小程序使用request网络请求操作实例
Dec 15 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
Feb 03 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 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获取当前页面完整URL的实现代码
2013/06/10 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
jQuery大于号(>)选择器的作用解释
2015/01/13 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
大四学生找工作的自荐信
2014/03/27 职场文书
学生会部长竞聘书
2014/03/31 职场文书
挂靠协议书范本
2014/04/22 职场文书
活动总结的格式
2014/05/07 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
导游词之韩国济州岛
2019/10/28 职场文书