jQuery技术

jQuery 3.0 升级指南 亚洲城线上娱乐(4)

字号+ 作者:H5之家 来源:H5之家 2017-08-23 10:01 我要评论( )

调用$(window).width()返回“内容宽度”不包括任何滚动条(因为内容超过元素的高度而造成浏览器自动添加的滚动条)。这个不同于用于CSS媒体查询的宽度,其包括滚动条的宽度。为了提供等同于CSS媒体查询概念的宽度,

调用$(window).width()返回“内容宽度”不包括任何滚动条(因为内容超过元素的高度而造成浏览器自动添加的滚动条)。这个不同于用于CSS媒体查询的宽度,其包括滚动条的宽度。为了提供等同于CSS媒体查询概念的宽度,$(window).outerWidth()方法现在返回的宽度值包括滚动条宽度。这相当于DOM属性window.innerWidth。.outerHeight()同样适用。

https://github.com/jquery/jquery/issues/1729

Effects(效果) 更改:.show(), .hide(), and .toggle() 方法不考虑更多的样式表更改

jQuery用来显示和隐藏元素的代码已被更新,更新后的代码只专注于内联样式,而不是计算样式,对于样式表的display值,应该尽可能增加以兼容响应式设计技巧(其中活动的样式表规则可以在设备改变方向(愚人码头注:横屏,竖屏)/窗口调整大小等时动态地改变)。因此,未关联元素不再被视为 hidden (隐藏),除非它们有内联样式display: none,同样的 ,从jQuery 3.0开始,.toggle()将不再区分关联和未关联元素。

此外,虽然.show()和类似的调用将继续强制迫使 被样式表规则隐藏的元素 可见,支持此功能会减慢所有显示/隐藏操作,并且不建议使用它。在这种情况下,确定设置哪个display(显示)值也已经被简化,当body级别规则按类型隐藏元素时,默认为“block”。

任何代码,希望隐藏的元素通过他们之前的 计算 display(显示)样式来重新显示,或未关联的元素处理为隐藏,应予以审查。团队创建了一个 与显示状态和显示/隐藏操作 所有可能相关的表格,以便简化非空内联样式的设置。

功能:动画现在使用requestAnimationFrame

在支持requestAnimationFrame API的平台上,jQuery现在执行动画时使用这个API,对于老的浏览器(如IE9),它会使用之前的API。这将使得动画更流畅,更少的CPU处理时间 – 并在移动设备上更加省电。

jQuery几年前尝试使用了requestAnimationFrame,但与现在的代码存在严重的兼容性问题,所以我们不得不重新实现它。我们认为,我们已经在浏览器标签页在视图中不可见的时候,通过暂停动画解决了大部分的问题。仍然,任何依赖于动画的代码总是实时运行
是一个不切实际的假设。

弃用: jQuery.fx.interval

现在requestAnimationFrame正在应用于动画,所以jQuery.fx.interval属性在大多数浏览器上被忽略。但是它仍然存在于jQuery 3.0中,并在一些浏览器(如IE9)中仍然需要使用,但将在未来的主要版本中会被删除。

弃用:附加 easing(缓动)函数参数

通过.animate()调用的 easing(缓动)函数传递单个参数,完成的百分比。一些较旧的代码假设它传递派生自百分比的额外参数。这些额外参数可能不会出现在未来的主版本更新中。

一个老的 easing(缓动)方法的例子:

$.easing.easeInOutSine = function (x, t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; };

同样的 easing(缓动)方法重写:

$.easing.easeInOutSine = function (x) { return -0.5*(Math.cos(Math.PI*x) - 1); };

https://github.com/jquery/api.jquery.com/issues/912

Event (事件) 更改:.load(), .unload(), 和 .error() 被移除

这些方法是事件操作的快捷方式,但有几个API限制。事件.load()方法与ajax .load()方法冲突。.error()方法不能与window.onerror一起使用,因为这种方式的DOM方法已经被定义。如果您需要通过这些名称绑定事件,请使用.on()方法,例如 将$("img").load(fn)更改为$(img).on("load", fn)。

https://github.com/jquery/jquery/issues/2286

更改: .on(“ready”, fn) 被移除

jQuery不再支持名为"ready"的合成事件(可以与事件函数一起使用)。此事件容易出错,并在jQuery 1.8中弃用,因为它只会调用在文档准备好(document ready)之前附加的回调函数。用$(fn)替换任何用法,它可以可靠地工作。

https://github.com/jquery/jquery/issues/2264

更改: event.pageX和event.pageY 标准化删除

jQuery 3.0官方支持的所有浏览器在其事件中都提供了pageX和pageY属性,所以jQuery代码从其他事件属性计算出来的这些值已被删除。此更改不不会影响主流浏览器,但也有这些属性不存在的可能性。如果碰到这种情况,请告诉我们,提交一个bug。

https://github.com/jquery/jquery/issues/3092

更改:jQuery.event.props 和jQuery.event.fixHooks 被移除

jQuery的事件处理性能提高,主要感谢事件属性管理的整改。主要的改进是,jQuery现在只计算或复制第一次访问的属性,而不是计算和复制它们。强制布局的属性有可能是一个真正的大赢家,事件处理程序甚至可能不需要。我们知道的最常见的用法是为鼠标事件添加属性,这不再是必要的,因为在jQuery 3.0中这些事件已经被支持。如果你仍然需要他们,jQuery Migrate插件提供了对这些属性的支持。相关但未出现在文档中mouseHooks和keyHooks列表也被删除。在定义新的API之前,团队有兴趣了解其他用例,如果你有使用常见,会有告诉我们。

https://github.com/jquery/jquery/issues/3103

https://github.com/jquery/jquery/issues/1746

https://learn.jquery.com/events/event-extensions/

更改:带有错误选择器的委托事件会立即抛出错误

在jQuery 3.0之前,选择器在委托事件中直到第一次在元素上触发事件时才会被使用。这有时会导致难以调试的情况,错误脱离发生错误的时间和代码。现在,当事件被附加时,会检查选择器,并且如果它是无效的,则抛出错误。这被认为是一个突破性的变化,当附加事件从未触发时,唯一可能的原因是代码使用无效的选择器,并且这种情况下,以前从未抛出过错误。

https://github.com/jquery/jquery/issues/3071

弃用:.bind()和.delegate()方法

五年前在jQuery 1.7中,我们介绍了用.on() 方法附加事件处理程序。从3.0开始,旧的.bind(), .unbind(), .delegate() 和 .undelegate() 方法已被标记为弃用,但仍然存在。API文档说明了如何使用.on()和.off()方法重写调用。

Manipulation(DOM操作) 更改:.wrapAll(function) 只调用一次 function

在以前的版本中,当传递一个函数作为参数时,.wrapAll() 方法和 .wrap() 方法行为是完全一样的。这已经被更正;现在.wrapAll(function)只调用一次 function参数,使用函数调用得到的字符串结果包装整个集合。

https://github.com/jquery/jquery/issues/1843

Offset(偏移) 更改:.offset()方法的无效输入

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jquery基础教程中关于内部函数问题

    jquery基础教程中关于内部函数问题

    2017-08-23 09:00

  • jQuery.Validate 使用笔记(jQuery Validation范例 )

    jQuery.Validate 使用笔记(jQuery Validation范例 )

    2017-08-23 08:02

  • 如何用jQuery做选项卡界面

    如何用jQuery做选项卡界面

    2017-08-22 16:03

  • 《jQuery基础教程》中文第四版

    《jQuery基础教程》中文第四版

    2017-08-22 14:05

网友点评
f