最近在做动画相关的项目,推荐 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

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。