浅析jQuery1.8的几个小变化


Posted in Javascript onDecember 10, 2013

一,.width() 和 .height()方法

1.8增加了对css属性box-sizing的支持,需要注意与1.7.2的区别了。1.7.2及以前的版本无论是否定义box-sizing: border-box返回的都是盒模型中元素内容的宽度或高度,不包括padding和border。

1.8后则不同了,当设置了css属性box-sizing: box-border后,使用width()返回的数值有可能与css中设置的不同。如

<!DOCTYPE html> 
<html> 
    <head> 
        <meta charset="UTF-8"/> 
        <style type="text/css">
            #container { 
                box-sizing: border-box; 
                -moz-box-sizing: border-box; 
                width: 500px; 
                padding: 5px; 
                border: 5px solid gold; 
            } 
        </style> 
        <script src="js/jquery-1.8.0.js"></script> 
    </head> 
    <body> 
        <div id="container"></div> 
        <script> 
            var $el = $('#container') 
            var w = $el.width(); 
            console.log(w) 
        </script> 
    </body>    
</html>

div[id=container]的box-sizing设置为border-box(Firefox14.1尚不支持border-box,使用-moz-border-box)。

除了设置width:500px外,还设置了padding和border分别为5px。各浏览器打印结果如下

IE6/7 : 500

IE8/9/10: 480

Safari5/6: 480

Chrome21/Firefox14: 480

IE6/7不支持box-sizing,输出的依然是500。但支持该熟悉的浏览器此时输出的结果则是480(刨去了盒模型的border和padding)。因此在1.8中需要注意使用box-sizing属性带来的width和height的结果变化。

二,.outerWidth 和 .outerHeight()方法

1.7.2及之前版本,outerWidth/outerHeight只作为getter。不传true时返回元素的宽度或高度(含padding和border),传true时(当然也可以传数字1)返回值加上margin。

1.8及后具有了setter功能,如果获取时想计算margin只能传true,不能传数字1等,因为传数字1等在jQuery内部将处理为设置元素宽高。且返回的不是数字而是jQuery对象(和jQuery其它setter一样)。

Javascript 相关文章推荐
JavaScript中输出标签的方法
Aug 27 Javascript
理解javascript中Map代替循环
Feb 26 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
AngularJS实现tab选项卡的方法详解
Jul 05 Javascript
babel的使用及安装配置教程
Feb 22 Javascript
JS获取input[file]的值并显示在页面的实现方法
Mar 09 Javascript
vue项目国际化vue-i18n的安装使用教程
Mar 14 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
Jul 26 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
Aug 03 Javascript
微信小程序实现锚点跳转
Nov 23 Javascript
vue el-upload上传文件的示例代码
Dec 21 Vue.js
Javascript中各种trim的实现详细解析
Dec 10 #Javascript
深入理解Javascript动态方法调用与参数修改的问题
Dec 10 #Javascript
ExtJS的拖拽效果示例
Dec 09 #Javascript
用Javascript获取页面元素的具体位置
Dec 09 #Javascript
jQuery取得select选择的文本与值的示例
Dec 09 #Javascript
JavaScript—window对象使用示例
Dec 09 #Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 #Javascript
You might like
PHP 开源框架22个简单简介
2009/08/24 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
2007/05/30 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
浅谈js常用内置方法和对象
2016/09/24 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
Django中Forms的使用代码解析
2018/02/10 Python
python命令行参数用法实例分析
2019/06/25 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
python中count函数知识点浅析
2020/12/17 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
C++是不是类型安全的
2014/02/18 面试题
季度思想汇报
2014/01/01 职场文书
本科毕业生自荐信
2014/05/26 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
见习期个人总结
2015/03/05 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL