浅析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实现自定义标签
May 08 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
May 13 Javascript
jquery中的$(document).ready()使用小结
Feb 14 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
Dec 18 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
Feb 02 Javascript
javascript中判断json的方法总结
Aug 27 Javascript
js中数组插入、删除元素操作的方法
Feb 15 Javascript
angular内置provider之$compileProvider详解
Sep 27 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
Aug 24 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
Apr 17 Javascript
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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
真正的ZIP文件操作类(php)
2007/07/21 PHP
使用php来实现网络服务
2009/09/15 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
二手房购房协议书范本
2014/10/05 职场文书
涨价通知怎么写
2015/04/23 职场文书
表扬信范文
2015/05/04 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python