浅析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 相关文章推荐
基于jQuery的JavaScript模版引擎JsRender使用指南
Dec 29 Javascript
jQuery中设置form表单中action值的实现方法
May 25 Javascript
用JS动态改变表单form里的action值属性的两种方法
May 25 Javascript
jQuery实现可展开折叠的导航效果示例
Sep 12 Javascript
JS敏感词过滤代码
Dec 23 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
Sep 07 Javascript
利用百度地图API获取当前位置信息的实例
Nov 06 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
动态加载权限管理模块中的Vue组件
Jan 16 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
Aug 10 Javascript
vue+openlayers绘制省市边界线
Dec 24 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 mssql 数据库分页SQL语句
2008/12/16 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
javascript offsetX与layerX区别
2010/03/12 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
JS实现简单的顶部定时关闭层效果
2014/06/15 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
js实现放大镜特效
2017/05/18 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
C#软件工程师英语面试题
2015/06/07 面试题
《威尼斯的小艇》教学反思
2014/02/17 职场文书
寒假家长评语大全
2014/04/16 职场文书
触电现场处置方案
2014/05/14 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书