首页
学习
活动
专区
圈层
工具
发布

CSS vs JS动画:谁更快?

jQuery 让我们从基本开始说起: Javascript 和 jQuery 两者不能混为一谈。Javascript 动画很快,而 jQuery 动画很慢。为什么呢?...jQuery的内存消耗较大,经常会触发垃圾回收。而垃圾回收触发时很容易让动画卡住。...jQuery使用了setInterval而不是 reqeustAnimationFrame(RAF),因为 RAF 会在窗口失去焦点时停止触发,这会导致jQuery的bug。...(目前jQuery已经使用了RAF) 注意 layout thrashing 会导致动画在开始的时候卡顿,垃圾回收的触发会导致动画运行过程中的卡顿,不使用 RAF 则会导致动画帧率低。...它可以让你将动画逻辑放在样式文件里面,而不会让你的页面充斥 Javascript 库。然而如果你在设计很复杂的富客户端界面或者在开发一个有着复杂UI状态的 app。

2.6K20

Web高性能动画及渲染原理(1)CSS动画和JS动画

CSS动画 和 JS动画 Web动画的本质是元素状态改变造成的样式变更,CSS动画和JS动画的区别并不是由语言来决定的,而是由两者的特点和适用场景来判断的。...CSS动画简洁高效,提升交互体验而编写的代码可以轻松地和主要业务逻辑之间实现隔离,开发中建议优先使用;而当你需要更丰富的缓动函数,多对象关联动画或是需要在动画执行的特定时间点关联一些其他的业务逻辑等需要细节控制的场景中...CSS动画可以使用著名的animate.css预设动画库,而JS动画可以借助velocity.js来实现,当然他们都不是唯一的选择。 二....} 也就是说无论你使用原生JavaScript语法,还是项目中已经引用了jQuery或Zepto,都可以在返回的结果集上以对象方法的形式来调用velocity函数(当然也可以用静态方法的形式来调用),...velocity.js中提供的事件钩子包括:begin(在动画开始时触发),complete(动画结束时触发),progress(动画过程中触发),progress钩子每次执行时可以获取到动画执行情况的细节

8.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    脚本语言知识总结.

    d+$/.test("1234") --- 返回true /^\d+$/ 等价于 new RegExp("^\\d+$") "1234".match("^\\d+$") 返回是匹配正则表达式内容,而不是布尔值...\d+$/.test("1234abc")); // 等价于 java中matches //alert("1234".match("^\\d+$")); // math方法返回的是匹配正则表达式内容,而不是布尔值...openNew; function openWindow(){ openNew = window.open("http://www.itcast.cn"); } //关闭的时候需要注意关闭的是打开的网页,而不是本身...这个动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式显示出来。在jQuery 1.3中,上下的padding和margin也会有动画,效果更流畅。...在动画完成时执行的函数 fadeOut(speed, [callback]) 概述 通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。

    6.6K130

    21道关于性能优化的面试题(附答案)

    (3)用 innerhTML代替DOM操作,减少DOM操作次数,优化 JavaScript性能。 (4)当需要设置的样式很多时,设置 className而不是直接操作 Style。...为了保证数据分析在同一使用场景下的真实性,一定要使用真机,因为此时模拟器在Mac上运行,而Mac上的CPU往往比iOS设备要快。 11、针对CSS,如何优化性能? 具体优化方法如下。...在性能方面,建议使用简单的for或者 while循环来处理,而不是$. each(),这样能使代码更快。...left属性实现的动画移动,原因是CSS动画属性会触发整个页面重排、重绘、重组。...paint通常是最耗性能的,尽可能避免使用触发 paint的CSS动画属性。 如果动画执行过程中有闪烁(通常发生在动画开始的时候),可以通过如下方式处理。

    2.4K20

    【面试】1093- 21 道关于性能优化的面试题(附答案)

    (3)用 innerhTML代替DOM操作,减少DOM操作次数,优化 JavaScript性能。 (4)当需要设置的样式很多时,设置 className而不是直接操作 Style。...为了保证数据分析在同一使用场景下的真实性,一定要使用真机,因为此时模拟器在Mac上运行,而Mac上的CPU往往比iOS设备要快。 11、针对CSS,如何优化性能? 具体优化方法如下。...在性能方面,建议使用简单的for或者 while循环来处理,而不是$. each(),这样能使代码更快。...left属性实现的动画移动,原因是CSS动画属性会触发整个页面重排、重绘、重组。...paint通常是最耗性能的,尽可能避免使用触发 paint的CSS动画属性。如果动画执行过程中有闪烁(通常发生在动画开始的时候),可以通过如下方式处理。

    2.2K20

    与Ajax同样重要的jQuery(2)

    表单选中元素 配合基本过滤选择器,缩小选中的范围 4.jQuery的DOM操作 使用jQuery的九种选择器可以基本选中需要操作的对象,但是为了提高jQuery的查询效率,可以结合jQuery的内置查找函数一起使用...解析中 find 方法使用最多 对查找结果进行遍历操作 each(function(){… }) ,在each函数中可以通过this 获得DOM对象,$(this) 获得jQuery对象 ②:属性操作.../jquery-1.8.3.min.js"> javascript"> $(function(){ // 使用live绑定 $("div").live...③:事件切换 hover(mouseover,mouseout) 模拟鼠标悬停事件 toggle(fn1,fn2,fn3...) ; 鼠标点击一次 触发一个函数 练习1: ² 编写一个div元素,光标移动上去.../jquery-1.8.3.min.js"> javascript"> $(function(){ // 编写一个div元素,光标移动上去 字体变为红色

    7.3K50

    推荐的十个CSS动画库

    在这篇文章中,我将向你展示目前为止,我发现/遇到的十个优秀的CSS动画库。 我大约尝试30种,但是这十种是我找到最好的。 请注意,这些库不需要引入JavaScript就可以运行。...它的使用一样,有自己更多的类,但是也扩展了些。添加vivify类到元素中,而不是animated。...('vivify', 'slideInLeft') 使用 Jquery $(".my-element").addClass("vivify slideInLeft") 就像Animate CSS一样,Vivify...你可以在完成动效后获取完成的代码,或者整个下载它。 7.Hover.css Hover.css是众多CSS动画的集合,与上面的动画不同,每次将元素悬停时都会触发。...') 使用 Jquery $(".my-element").addClass("bounceIn") 9.Three Dots Three Dots是CSS加载动画的集合,仅由三个简单元素制作而成的三个点创建

    1.8K30

    【译】推荐的十个CSS动画库

    在这篇文章中,我将向你展示目前为止,我发现/遇到的十个优秀的CSS动画库。 我大约尝试30种,但是这十种是我找到最好的。 请注意,这些库不需要引入JavaScript就可以运行。...它的使用一样,有自己更多的类,但是也扩展了些。添加vivify类到元素中,而不是animated。...('vivify', 'slideInLeft') 使用 Jquery $(".my-element").addClass("vivify slideInLeft") 就像Animate CSS一样...你可以在完成动效后获取完成的代码,或者整个下载它。 7.Hover.css Hover.css是众多CSS动画的集合,与上面的动画不同,每次将元素悬停时都会触发。...bounceIn') 使用 Jquery $(".my-element").addClass("bounceIn") 9.Three Dots Three Dots是CSS加载动画的集合,仅由三个简单元素制作而成的三个点创建

    1.1K10

    JQuery基础

    ,它有以下功能: HTML元素选取 HTML元素操作 CSS操作 HTML事件函数 JavaScript特效和动画 HTML DOM遍历和修改 AJAX Utilities(实用工具) 很多大公司都在使用...使用大公司CDN好处: 许多用户在访问其它站点时,已经从百度、新浪、谷歌和微软加载过jQuery。当用户访问我的站点时,会从缓存中加载jQuery,这样可以有效减少加载时间!...(元素失去焦点)事件; 文档/窗口事件:load(元素已加载触发,在jQuery1.8中废除。...如需使用:需从 jquery.com 下载 颜色动画 插件。 默认:jQuery animate()采用队列来操作效果。队列:先进先出。...插入后:hello tomorrow是使用append():插入到div里面了,并与div里面的元素内容相联合;而hello yesterday是使用after():插入待div外面,即div元素的后面

    6.7K51

    JavaScript学习笔记(四)—— jQuery入门

    终于到了js框架的学习部分了,这部分内容主要讲jQuery,也是非常重要的内容。 jQuery应用入门 jQuery是一个JavaScript库,极大的简化了JavaScript编程。...");//设置HTML内容 }); }); 对元素的值进行操作 在jQuery中,使用val()方法返回或设置被选元素的value属性。...操作元素的CSS样式 CSS类别操作 jQuery为用户提供了3种CSS类别操作方法: ---- - 添加css样式:addClass(),参数可选,空格隔开 javascript...stop()方法用于在动画或效果完成前对他们进行停止,stop方法适用于所有的jQuery特效。...返回值 keydown 在键盘上按下某键时触发,一直按一直触发 返回键盘代码 keypress 在键盘上按下一个能产生字符的按键时触发 返回ASCII码 keyup 松开某一键时触发 返回键盘代码

    12.3K50

    如何做到 jQuery-free?

    jQuery是现在最流行的JavaScript工具库。 据统计,目前全世界57.3%的网站使用它。也就是说,10个网站里面,有6个使用jQuery。...开发者直接使用JavScript标准语法,就能同时在各大浏览器运行,不再需要通过jQuery获取兼容性。...但是目前,CSS 3的动画远比DOM强大,所以可以把动画效果写进CSS,然后通过操作DOM元素的class,来展示动画。   ...foo.classList.add('animate'); 如果需要对动画使用回调函数,CSS 3也定义了相应的事件。   ...如果不求最大兼容,只希望模拟jQuery的基本功能,那么,min.js优化后只有200字节,而dolla优化后是1.7KB。 此外,jQuery本身采用模块设计,可以只选择使用自己需要的模块。

    1.5K40

    那些前端常用的网站插件

    Javascript 库 Particles.js — 一个用来在 web 中创建炫酷的浮动粒子的库 Three.js — 一个用来在 web 中创建 3d 物体和 3d 空间的库 Fullpage.js...— 快速实现全屏滚动特性 Typed.js — 打字机效果 Waypoints.js — 滚动到某个元素位置时触发一个功能 Highlight.js — web 语法高亮 Chart.js — 使用 JavaScript... — CSS 实现动画过渡的 jQuery 插件 Barba.js — 流式页面过渡 TwentyTwenty — 一个对比图片的可视化 diff 工具 Vivus.js — 在 SVG 上绘制动画 Wow.js... — 滚动时展现动画 Scrolline.js — 页面滚动时显示滚动进度 Velocity.js — 快速流畅的 JavaScript 动画 Animate on scroll — 漂亮的页面滚动元素动画...effect — 使用 CSS3 动画实现 Ken burns 特效 DynCSS — 给 CSS 添加 function,动态化 CSS Magic animations — CSS3 实现动画特效

    5.3K50
    领券