首页技术css3动画和jquery动画的区别,jQuery动画

css3动画和jquery动画的区别,jQuery动画

编程之家2026-06-06850次浏览

这篇文章给大家聊聊关于css3动画和jquery动画的区别,以及jQuery动画对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

css3动画和jquery动画的区别,jQuery动画

既然有了 jQuery,为什么 CSS3 还要有动画功能

CSS本是用来控制浏览器中的表现样式,而JQ作为JS的一个库,本质上是用于控制浏览器中的行为的。

于是有一部分人认为,动画效果也应该属于表现样式的,所以在已经有各大流行JS框架(不仅仅是JQ)支持能够生成动画的情况下,CSS 3中依然加入了动画效果支持,而且部分思路是学习了JQ之类的脚本库。

而为什么有了CSS 3动画,还要有JQ?

因为JQ等脚本库先出来嘛……而且,JS中调用CSS 3动画也还不是那么方便,并且,主流浏览器以前还没有完全支持CSS 3动画,而用JS生成的动画则没有兼容性问题。

所以,综合来说,先有JQ等脚本库提供动画,CSS 3吸取经验加入标准。在未来,等这些标准成熟了,浏览器支持度高了,JQ等脚本库就很可能会在内部调用CSS 3的动画来实现目前的动画功能了。

AngularJS和jquery,有什么区别

AngularJS是Web前端开发中的一个 JavaScript框架,目前在前端中使用率也是非常高的,也是Web前端开发者以动态形式开发时最喜欢的框架之一。如果你是一个前端开发者希望基于AngularJS启动一个项目,你需要筛选众多的工具。为了减少用AngularJS开发的负担,下面源码时代Web前端培训小编为大家介绍20款最新的工具,主要涉及测试、前端开发、IDE编辑器、文本编辑器、优秀库、模块、扩展、代码生成器、网格工具等等。

css3动画和jquery动画的区别,jQuery动画

1.Karma–是一个简单的javascript测试工具,它允许在多个真正的浏览器执行JavaScript代码..提供了完美的测试环境,允许你在真实的浏览器和设备比如手机和平板电脑上测试应用。

2.Protractor–是一款端对端的测试框架。这个Node.js项目建立在WebDriverJS之上。它在真实浏览器上运行测试,与其交互就如任何正常用户使用一样。

3. Jasmine–这款行为驱动测试框架不依赖于浏览器、DOM或者任何JavaScript框架,因此对于任何Node.项目或者任何JavaScript运行的地方都非常适合。

4. Djangular–这是一款可重用的应用,可以提供更好的AngularJS集成。有了此工具的帮助,你可以为每个应用创建 AngularJS内容。

5. Ment.io–这款工具引入了mention部件和宏控件,并不依赖于jQuery。你可以应用ment.io指令作用于任何元素,并且它允许可选择的文本输入。

6. Angular Kickstart–这款工具加速了AngularJS开发,并伴随可扩展的构建系统,简化了开发过程。

css3动画和jquery动画的区别,jQuery动画

7. AngularFire–用此工具,你可以轻松创建 Angular应用后台。灵活的API,3种数据绑定方式以及快速开发能力使得开发变得轻松。

8. Mocha.js–这是一款运行在node.js和浏览器上的功能丰富的测试框架。允许异步测试,能灵活准确的报告与映射。

9. SublimeText–对于开发者来说最好的一款文本代码编辑器,使得编写代码简单化。比起其他文本编辑器,许多开发者更喜欢用Sublime Text.

10. Restangular–这款工具简化了常见的GET, POST, DELETE, UPDATES请求,使用更简短的代码。对于任何通过 RESTful API进行数据操作的 Web应用都是理想化的工具。

11. Generator Angular–这款工具可以帮助你快速的设置项目的默认结构。它能输出让你快速开始app开发的模板。

12. NG-Inspector–这是一个Chrome和Safari浏览器扩展,安装成功后会出现先审查面板中,帮助你开发、调试和深入理解 AngularJS应用。它使得更容易标识和显示Controllers和Directives中的scope。

13. Angular Seed–这个一个典型的AngularJS web app开发框架,它可以让你在开发环境快速启动angular app。

14. Code Orchestra–这是一个前端开发工具,它允许你所见即所得方式开发代码。一旦你保存修改了的代码,它使用一个特殊的协议自动的显示出来。

15. Videogular–这是一个针对AngularJS的基于HTML5的视频播放库,它使得在你的app中使用视频或其他多媒体更容易。

16. Webstorm–它是一个智能的代码编辑器,支持JavaScript, Node.js, HTML和CSS等等以及它们对应下一代的继任者。它能工作在所有的先进技术下,对大部分开发者来说,使用它是一个很好的选择。

17. Angular GetText–这是超级简单的翻译工具,你只需输入英文文本,标记它需要翻译,它就会翻译。

18. Angular Deckgrid–这是一个轻量级的表格,它没有自己的展现样式,完全依赖于你定义在CSS中的样式。

19. Angularjs UI–这是一个UI组件集合库,它有很多有用的指令来帮你快速的开发Angular应用。它使用指令来代替组件,如:ui-router, ui-map, and ui-calendar。

20. Mean–它是一个使用MongoDB, Node.js, Express和AngularJS apps的简单而完美的模板。它捆绑和配置了一些模块,如: Mongoose、Passport。

21. Wijmo–这是新一代HTML5/ JavaScript UI控件。大而全面的前端开发工具包,全面支持Angular 2。

22. VS Code(Visual Studio Code)是由微软研发的一款免费、开源的跨平台文本(代码)编辑器。几乎完美的编辑器。

源码时代:

即将发布的jQuery3有哪些新特性_jquery

jQuery的横空出世,至今已有十个年头了,而它的长盛不衰显然不是没有理由的。jQuery是继prototype之后又一个优秀的Javascript库。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

在未来的几周内,jQuery就将抵达一个重要的里程碑——正式发布 3.0版本。jQuery 3修复了大量的 bug,增加了新的方法,同时移除了一些接口,并修改了少量接口的行为。在这篇文章中,我将为大家重点讲解 jQuery 3所引入的那些最重要的变化。

新增特性

我们先来讨论 jQuery 3中最重要的几个新增特性。

for...of循环

在 jQuery 3中,我们可以用 for...of循环语句来迭代一个 jQuery集合中的所有 DOM元素。这种新的迭代方法是 ECMAScript 2015(即 ES6)规范中的一部分。这个方法可以对“可迭代对象”(比如 Array、Map、Set等)进行循环。

当使用这种新的迭代方法时,你在循环体内每次拿到的值并不是一个 jQuery对象,而是一个 DOM元素(译注:这一点跟.each()方法类似)。当你在对一个 jQuery集合进行操作时,这个新的迭代方法可以少许改善你的代码。

为了搞清楚这种迭代方法到底是怎么工作的,我们来假设一个场景——你需要给页面中的每个 input元素分配一个 ID。在 jQuery 3之前,你可能会这样写:

代码如下:var$inputs=$('input');for(var i= 0; i$inputs[i].id='input-'+ i;

}

而在 jQuery 3中,你就可以这样写了:

代码如下:var$inputs=$('input');var i= 0;

for(var input of$inputs){

input.id='input-'+ i++;

}

(译注:其实 jQuery自己是有个.each()方法的,可读性也不赖。)

$.get()和$.post()函数的新签名

jQuery 3为$.get()和$.post()这两个工具函数增加了新签名,从而使得它们和$.ajax()的接口风格保持一致。新签名是这样的:

代码如下:$.get([settings])

$.post([settings])

settings是一个对象,它包含多个属性。它的格式和你以前传给$.ajax()的参数格式是一样的。如果你想更清楚地了解这个参数对象,请参考$.ajax()页面中的相关描述。

$.get()和$.post()的参数对象与传给$.ajax()的参数相比,唯一的区别就是前者的 method属性总是会被忽略。原因其实也很简单,$.get()和$.post()本身就已经预设了发起 Ajax请求的 HTTP方法了(显然$.get()就是 GET,而$.post()就是 POST)。也就是说,正常人类应该是不会想用$.get()方法来发送一个 POST请求的。

假设有以下一段代码:

代码如下:$.get({

url:'',

method:'POST'// This property is ignored

//这个属性将被忽略});

不管我们把 method属性写成什么,这个请求总是会以 GET的方式发出去的。

采用 requestAnimationFrame()来实现动画

所有现代浏览器(包括 IE10及以上)都是支持 requestAnimationFrame的。jQuery 3将会在内部采用这个 API来实现动画,以便达到更流畅、更省资源的动画效果。

unwrap()方法

jQuery 3为 unwrap()方法增加了一个可选的 selector参数。这个方法的新签名是这样的:

代码如下:unwrap([selector])

有了这个特性,你就可以给这个方法传入一个包含选择符表达式的字符串,用它来在父元素内进行匹配。如果存在匹配的子元素,则这个子元素的父层将被解除;如果没有匹配,则不进行操作。

有变更的特性

jQuery 3还修改了一些特性的行为。

:visible和:hidden

jQuery 3将会修改:visible和:hidden过滤器的含义。只要元素具有任何布局盒,哪怕宽高为零,也会被认为是:visible。举个例子,br元素和不包含内容的行内元素现在都会被:visible这个过滤器选中。

因此,如果你的页面中包含如下的结构:

代码如下:

然后运行以下语句:

代码如下:console.log($('body:visible').length);

在 jQuery 1.x和 2.x中,你得到的结果会是 0;但在 jQuery 3中,你会得到 2。

data()方法

另一个重要的变化是跟 data()方法有关的。现在它的行为已经变得跟 Dataset API规范一致了。jQuery 3将会把所有属性键名转换成驼峰形式。我们来详细看一下,以如下元素为例:

代码如下:

当我们在用 jQuery 3以前的版本时,如果运行如下代码:

代码如下:var$elem=$('#container');

$elem.data({'my-property':'hello'});console.log($elem.data());

将会在控制台得到如下结果:

代码如下:{my-property:"hello"}

而在 jQuery 3中,我们将会得到如下结果:

代码如下:{myProperty:"hello"}

请注意,在 jQuery 3中,属性名已经变成了驼峰形式,横杠已经被去除了;而在以前的版本中,属性名会保持全小写,并原样保留横杠。

Deferred对象

jQuery 3还改变了 Deferred对象的行为。Deferred对象可以说是 Promise对象的前身之一,它实现了对 Promise/A+协议的兼容。这个对象以及它的历史都相当有意思。如果想要深入了解,你可以去阅读 jQuery官方文档,也可以去看我写的书《jQuery实战(第三版)》——这本书也涵盖了 jQuery 3。

在 jQuery 1.x和 2.x中,传给 Deferred的回调函数内如果出现未捕获的异常,会立即中断程序的执行(译注:即静默失败,其实 jQuery绝大多数回调函数的行为都是这样的)。而原生的 Promise对象并非如此,它会抛出异常,并不断向上冒泡,直至到达 window.onerror(通常冒泡的终点是这里)。如果你没有定义一个函数来处理这个错误事件的话(通常我们都不会这么做),那这个异常的信息将会被显示出来,此时程序的执行才会停止。

jQuery 3将会遵循原生 Promise对象的模式。因此,回调内产生的异常将会导致失败状态(rejection),并触发失败回调。一旦失败回调执行完毕,整个进程就将继续推进,后续的成功回调将被执行。

为了让你更好地理解这个差异,让我们来看一个小例子。比如我们有如下代码:

代码如下:var deferred=$.Deferred();

deferred

.then(function(){ throw new Error('An error');

})

.then( function(){ console.log('Success 1');

}, function(){ console.log('Failure 1');

}

)

.then( function(){ console.log('Success 2');

}, function(){ console.log('Failure 2');

}

);

deferred.resolve();

在 jQuery 1.x和 2.x中,只有第一个函数(也就是抛出错误的那个函数)会被执行到。此外,由于我们没有为 window.onerror定义任何事件处理函数,控制台将会输出“Uncaught Error: An error”,而且程序的执行将中止。

而在 jQuery 3中,整个行为是完全不同的。你将在控制台中看到“Failure 1”和“Success 2”两条消息。那个异常将会被第一个失败回调处理,并且,一旦异常得到处理,那么后续的成功回调将被调用。

SVG文档

没有哪一个 jQuery版本(包括 jQuery 3)曾官方宣称支持 SVG文档。不过事实上有很多方法是可以奏效的,此外还有一些方法在以前是不行的(比如操作类名的那些方法),但它们在 jQuery 3中也得到了更新。因此,在 jQuery 3中,你应该可以放心使用诸如 addClass()和 hasClass()这样的方法来操作 SVG文档了。

已废弃、已移除的方法和属性

在增加了上述改进的同时,jQuery也移除、废弃了一些特性。

废弃 bind()、unbind()、delegate()和 undelegate()方法

jQuery在很久以前就引入了 on()方法,它提供了一个统一的接口,用以取代 bind()、delegate()和 live()等方法。与此同时,jQuery还引入了 off()这个方法来取代 unbind()、undelegated()和 die()等方法。从那时起,bind()、delegate()、unbind()和 undelegate()就已经不再推荐使用了,但它们还是一直存在着。

jQuery 3终于开始将这些方法标记为“废弃”了,并计划在未来的某个版本(很可能是 jQuery 4)中将它们彻底移除。因此,请在你的项目中统一使用 on()和 off()方法,这样你就不用担心未来版本的变更了。

移除 load()、unload()和 error()方法

jQuery 3彻底抛弃了 load()、unload()和 error()等已经标记为废弃的方法。这些方法在很早以前(从 jQuery 1.8开始)就已经被标记为废弃了,但一直没有去掉。如果你正在使用的某款插件仍然依赖这些方法,那么升级到 jQuery 3会把你的代码搞挂。因此,在升级过程中请务必留意。

移除 context、support和 selector属性

jQuery 3彻底抛弃了 context、support和 selector等已经标记为废弃的属性。同上,在升级到 jQuery 3时,请留意你正使用的插件。

已修复的 Bug

jQuery 3修复了以往版本中的一些非常重要的 bug。在本节中,我将着重介绍其中两处,因为这两者应该会对你写代码的习惯带来显著影响。

width()和 height()的返回值将不再取整

jQuery 3修复了 width()、height()和其它相关方法的一个 bug。这些方法的返回值将不再舍入取整,因为这种取整行为在某些情况下不便于对元素进行定位。

我们来详细看一看。假设你一个宽度为 100px的容器元素,它包含了三个子元素,宽度均为三分之一(即 33.333333%):

代码如下:

My name

is

Aurelio De Rosa

在 jQuery 3以前的版本中,如果你尝试通过以下代码来获取子元素的宽度??

代码如下:$('.container div').width();

??那么你得到结果将是 33。原因在于 jQuery会把 33.33333这个值取整。而在 jQuery 3中,这个 bug已经被修复了,因此你将会得到更加精确的结果(即一个浮点数)。

wrapAll()方法

jQuery 3还修复了 wrapAll()方法中的一个 bug,这个 bug出现在把一个函数作为参数传给它的情况下。在 jQuery 3以前的版本中,当一个函数被传给 wrapAll()方法时,它会把 jQuery集合中的每个元素单独包裹起来。换句话说,这种行为和把一个函数传给 wrap()时的行为是完全一样的。

在修复这个问题的同时,还引入了另外一个变更:由于在 jQuery 3中,这个函数只会调用一次了,那就无法把 jQuery集合中每个元素都传给它。因此,这个函数的执行上下文(this)将只能指向当前 jQuery集合中的第一个元素。

如何下载 jQuery 3 beta 1

既然你已经读到了这里,那说明你很可能想试试 jQuery 3的第一个 beta测试版。你可以通过以下两个地址来获取这个版本:

未压缩版:

压缩版:

当然,你还可以通过 npm来下载:

[code]npm install jquery@3.0.0-beta1[/code]

结论

很多人一直在唱衰 jQuery,说它在现代网页开发中已经没有一席之地了。但不管怎样,jQuery的开发仍在继续,客观的统计数据(在排名前一百万名的网站中占有率高达 78.5%)也让这些论调不攻自破。

在本文中,我已经带你了解了一遍 jQuery 3将会带来的一些重大变化。或许你已经察觉到了,这个版本并不太可能搞挂你的既有项目,因为它引入的破坏性变更其实寥寥无几。不过,在升级到 jQuery 3的过程中,你还是有必要牢记一些关键点,比如 Deferred对象的改进等等。同样,在升级某个第三方库时,也有必要检查一下该项目的兼容性情况,以便尽早发现任何非预期行为,避免某些功能失效。

译注

除了本文所提及的变更之外,jQuery 3.0最大的变化就是彻底放弃对 IE8的支持。jQuery团队做出这个决定的原因在于,微软已经在今年年初宣布停止对 IE 8~10的支持。因此,jQuery在 3.0 alpha阶段所发布的 jQuery Compat项目也就没有继续存在的必要了。

不过,由于 IE8仍然是中国大陆最流行的浏览器之一,对国内的开发者来说,在短期(甚至中期)内还不得不停留在 jQuery 1.x版本。

好吧,最后还是说个好消息吧。为帮助用户平滑升级,此次 jQuery同样会为 3.0版本提供迁移插件(jQuery Migrate plugin)。在把 jQuery升级到 3.0之后同时运行这个插件,即可确保基于 jQuery 1.x或 2.x的既有业务代码正常运行;同时,它还将在控制台向你报告既有代码与 jQuery 3不兼容的地方。当你修复了这些不兼容问题之后,就可以安全地移除这个插件了。

OK,本文到此结束,希望对大家有所帮助。

ai少女安卓破解版下载,ai少女怎么下载 两种方法介绍给你java代码大全表白?c++代码大全