最近在做动画相关的项目,推荐 11 个好用的 JS 动画库
作者:Jonathan Saring
译者:前端小智
来源:medium
为了保证的可读性,本文采用意译而非直译。
1.Three.js
超过46K的星星,这个流行的库提供了非常多的3D显示功能,以一种直观的方式使用 WebGL。这个库提供了<canvas>、 <svg>、CSS3D 和 WebGL渲染器,让咱们在设备和浏览器之间创建丰富的交互体验。该库于2010年4月首次推出,目前仍有近1000名贡献者在开发中。
2. Anime.js
超过20K的星星,Anime 是一个 JS 动画库,可以处理CSS属性,单个CSS转换,SVG 或任 何 DOM 属性以及 JS 对象。 此库允许咱们链接多个动画属性,将多个实例同步,创建时间轴等。
3.Mo.js
超过 14K 星星,是一个用于 Web 的动态图形工具带,具有简单的声明 API,跨设备兼容性和超过1500个单元测试。 咱们可以在 DOME 或SVG DOME周围移动东西或创建唯一的 mo.js 对象。虽然文档有些稀缺,但是示例很丰富,这里有CSS技巧的介绍。
4. Velocity
超过 15k 星星,Velocity是一个快速的 JS 动画引擎,拥有与jQuery的 $.animate() 相同的API。它具有彩色动画、转换、循环、画架、SVG支持和滚动。这里是Velocity的高性能引擎的分解,这里是使用该库的 SVG 动画的介绍。
5. Popmotion
超过 14K 星星,这个动画库大小只有 11 kb。它允许开发人员从动作创建动画和交互,这些动作是可以启动和停止,可以使用 CSS、SVG、React、three 创建,js 和任何接受数字作为输入的 API。
6. Vivus
超过 10k 星星,Vivus是一个零依赖的 JS 类,可以让你为SVG制作动画,让它们具有被绘制的外观。 咱们可以使用许多可用动画之一,或创建自定义脚本来绘制SVG。 查看Vivus-instant获取实际示例,亲自动动手练习一下。
7. GreenSock JS
GSAP 是一个JS 库,用于创建高性能、零依赖、跨浏览器动画,据称在超过400万个网站上使用。GSAP是灵活的,可以与 React、Vue、Angular 和 vanilla JS 协同工作。GSDevtools 还可以帮助使用 GSAP 构建dubug 动画。
8. Scroll Reveal
拥有15K颗星星和零依赖,这个库为 web 和移动浏览器提供了简单的滚动动画,以动画的方式显示滚动中的内容。它支持多种简洁的效果类型,甚至允许你使用自然语言定义动画。这里有一个简短的 SitePoint教程。
9. Hover (CSS)
超过 20k 星星,Hover 提供了CSS3支持的悬停效果集合,可应用于链接、按钮、徽标、SVG、特色图像等,在CSS、Sass和LESS中可用。您=可以复制和粘贴希望在自己的样式表中使用的效果,或者引用样式。
10. Kute.js
一个完全成熟的原生 JS 动画引擎,具有跨浏览器动画的基本功能。 重点是代码质量,灵活性,性能和大小(核心引擎17k 和 gzipped 5.5k) – 这是一个演示。 该库也是可扩展的,因此你可以添加自己的功能。
11. Typed.js
超过 7k 星星,这个库基允许你以选定的速度为字符串创建打字动画。 你还可以在页面上放置 HTML div 并从中读取以允许搜索引擎和禁用 JS 的用户访问,由Slack和其他人使用,这个库既流行又非常有用。
原文:https://blog.bitsrc.io/11-javascript-animation-libraries-for-2018-9d7ac93a2c59
jQuery 自定义动画——animate
自定义动画
使用animate()方法
animate(params,[duration],[easing],[callback])
其中params为希望进行变换的CSS属性列表,以及希望变化到的最终值;
需要特别指出,params中的变量遵循camel(驼峰式)命名方式,例如:paddingLeft不能写成padding_left
params只能是CSS中用数值表示的属性,例如width、top、opacity等,像backgroundColor这样的属性不被animate()支持;
属性值必须加引号,例如:width: \”90%\”,用逗号隔开
duration为持续的时间,三种预定速度之一的字符串(\”slow\”,\”normal\”, or \”fast\”)或表示动画时长的毫秒数值(如:1000)
fast: 快速的
easing为可选参数,通常供动画插件使用,用来控制变化工程的节奏,jQuery中只提供了linear和swing两个值
jQuery 代码:
点击按钮后div元素的几个不同属性一同变化
// 在一个动画中同时应用三种类型的效果
HTML 代码:
相对变化的自定义动画
在params的CSS属性列表中,jQuery还允许使用\”+=\”或者\”-=\”来表示相对变化(多次变化)
让指定元素左右移动
jQuery 代码:
HTML 代码:
另外在CSS属性列表params中,还可以将属性的最终值设置为\”show\”、\”hide\”、\”toggle\”
在600毫秒内切换段落的高度和透明度
jQuery 代码:
用500毫秒将段落移到left为50的地方并且完全清晰显示出来(透明度为1)
jQuery 代码:
一个使用\”easein\”函数提供不同动画样式的例子。只有使用了插件来提供这个\”easein\”函数,这个参数才起作用。
jQuery 代码:
animate()方法还有另外一种形式
animate(params,options)
其中params与第一种形式完全相同,options为动画的可选参数列表,主要包括duration、easing、callback、queue等。
其中duration、easing、callback与第1种形式完全一样,queue为布尔值,表示当有多个animate()组成jQuery链时,当前
animate()与紧接着的下一个animate()是按顺序执行(true,默认值),还是同时触发(false);
动画效果的触发程序
jQuery代码:
HTML代码:
delay(duration,[queueName])
设置一个延时来推迟执行队列中之后的项目。
jQuery代码:
HTML代码:
实例: delay特效
页面滚动到顶部的效果
实例: 返回顶部
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。