2022年最好的10个JavaScript动画库
如果你想抓住你的网站访问者的注意力,还有什么能比动画更好呢?使用网络上免费提供的许多应用引擎,你可以很容易地让你的网站元素褪色、跳动或嗖嗖作响。在今天的文章中,我们将看到JavaScript动画库如何帮助实现这一切。
首先,介绍一下JavaScript的动画
添加只需要一个动作的简单动画(例如,切换)是一回事。对于这一点,你总是可以使用简单的CSS动画。但是,对于更复杂或高级的效果。 JavaScript是一个更好的工具。不言而喻,使用JavaScript来创建动画比使用CSS更具挑战性。
然而,JavaScript可以处理CSS所不能处理的事情。这给了开发者更多的权力来控制需要协调多个移动部件的复杂动画。
JavaScript动画是通过在一个元素的样式上添加渐变来实现的。你可以把它们作为你代码的一部分在线添加,或者把它们包含在其他对象中。在渲染时,这些变化由一个定时器调用。另外,你可以通过调整变化的时间间隔来控制动画的连续性。
让我们从Anime.js开始这个JavaScript动画库的列表。这个轻量级的动画库在GitHub上有35K多颗星。 通过一个强大的API工作,你可以用它来为HTML、CSS、JS、SVG和DOM属性制作动画。通过一个内置的交错系统,它可以使创建波纹、定向运动、跟随和重叠的效果显得很简单。这个系统在定时和属性上都是可用的。
使用内置的回调和控制函数,你可以做很多事情。例如,你可以同步播放、暂停、控制、逆转和触发事件。
Velocity.js结合了jQuery和CSS转换的优点。它的评分接近17K星,在 GitHub上有接近17K颗星,并拥有像WhatsApp和Motorola这样的杰出用户。 Mailchimp.循环、反转、延迟、隐藏/显示元素、属性数学(+、-、*、/)和硬件加速,都是其功能的一部分。
你可以使用Velocity.js来滚动 browser windows.它既可以与浏览器中加载的jQuery一起工作,也可以独立于它,甚至可以撤消之前的动画效果。
在接近 18K星,Popmotion是一个适用于任何JavaScript环境的功能性动画库。它几乎可以与任何接受数字输入的API一起工作,如 React,Three.js,A-Frame和PixiJS。
Popmotion的重量只有11.7kB,但却很有冲击力。它的特点是动画,如关键帧、衰减、用于同步多个实例的时间线等。你可以错开任何系列的动画或函数,也可以使用纯函数来组成你自己的配置。
Three.js以60K以上的星级在这个JavaScript动画库列表中排名第一。 它依靠的是 WebGL来创建和渲染浏览器中的3D动画。
有大量的文档可以帮助你,一旦你通过了学习曲线,使用这个库就没有什么不能完成的。首先,使用Three.js编辑器,你可以创建一个场景。此后,你可以添加几何图形,并调整灯光和摄像机。材料、纹理、物体、颜色和雾化都可以进行调整,最后的文件可以发布到你的项目中。
GreenSock的GSAP与一组小的JavaScript文件一起工作,使动画在所有主要的浏览器中看起来很好。它能顺利地将多个动画属性连接起来,并消除浏览器的错误。
GSAP的动作包括在Canvas上创建动画,以及为场景中的任何对象制作动画。还可以逐步揭示、变形或沿路径移动任何对象。为此,它与一堆软件应用一起工作,如SVGPlugins、PixiPlugin、WebGL、Adobe Animate和EaseJS。它的模块化结构有助于你选择你需要的功能。拥有800万用户和10K+颗星的 GitHub上有800万用户和10K多颗星,这个强大的库有很多优点。
6. AniJS
在这个列表中的JavaScript库中,AniJS有些独特。它允许你在一个简单的 \”句子 \”结构中为元素添加动画,这对刚接触动画的人来说是很好的。更重要的是,它的非特定性质使得几乎每个人都可以在日常的用户体验设计中使用它。
上 GitHub,AniJS的评分超过了3.5K星。它不依赖任何第三方库,通常有助于加快开发速度。它在安卓和iOS上都能很好地工作。 Android and iOS,也可以在所有流行的浏览器中使用。
7. Mo.js
运动图形在动画中起着很大的作用,Mo.js是一个可以让你产生影响的选择。由于有大量的教程和演示帮助,初学者可能不会发现创建几何形状和时间动画的难度。
这些API可能看起来很简单,但你可以用它们做很多事情。在这个工具包中,你会发现一个曲线编辑器和时间线编辑器来帮助你建立你的动画,以及一个播放器来控制你的动画。有不同的模块用于交错、缓和、时间线和更多。所有这些为Mo.js赢得了接近16K星的评价。
8. Vivus.js
如果你想在屏幕上实时地模仿钢笔画,你会用Vivus达到目的。它可以让你对SVG进行动画处理,给人以被绘制的感觉。由于它没有任何依赖性,所以它是快速和轻便的。
你可以选择任何一种可用的动画 – 延迟、同步或OneByOne。否则,你也可以创建一个自定义脚本来绘制你的SVG。为了提高灵活性,你可以用一个简单的JavaScript函数来覆盖每个路径的动画。超过1.3万名用户对这个库竖起了大拇指。
9. ScrollReveal JS
如果你希望在你的网页元素滚动进入视图时为它们制作动画,ScrollReveal不会让你失望。这个简单易学的动画库没有任何依赖性,在GitHub上有18.5K多颗星。
ScrollReveal支持不同类型的效果,在网络和移动浏览器上运行良好。它故意用一个裸露的配置来工作,所以你可以把它作为你的创造力的画布。为了使动画的效果最大化,创作者建议你少用它。
10. Typed.js
Typed.js是一个简单的库(更像是一个插件,真的),用于在你的屏幕上对打字进行动画处理。一旦你输入任何字符串,访问者就可以看到它以设定的速度被打出来。不仅如此,你还可以操作退格按钮,以及开始一个新的句子。如果你希望让禁用JS的访问者也能看到,你只需要在页面上放置一个HTML div。这样一来,机器人和搜索引擎也能查看输入的文字。
该库在GitHub的评分为9.5K+星,强大的用户包括Slack和Envato。
11. Lottie by AirBnB
Lottie是一种轻量级的动画图形格式,平衡了高质量的图形和渲染成本。它使应用程序更小,并包括动态功能。它可以用于网络、安卓、iOS和物联网,不需要额外的软件。
Lottie可以在任何支持JavaScript的浏览器上运行。动画是以纯文本形式存储的,是人类可读的。由于文本数据是以JSON格式存储的,它很容易被任何JavaScript环境同化。这使得它成为一种流行的动画图形格式,以增强移动前端。仅仅是安卓版本就有接近3万颗星。
令程序员惊叹的一些CSS3效果库
还在寻找那些CSS3的效果库吗?如果你的答案是肯定的,并且目前没有找到,那么你一定不能错过小编为大家收集的这些CSS3效果库,这是一个令你兴奋的集合!最新的CSS3都配备了新的特性,来设计创建动画和互动的网页。在本文中,可以找到一些非常优秀的CSS3效果库,来让你的Web设计看起来更加引人注目。还在等什么?让我们一起看起来吧!
Animate.css是一大堆的很酷,很有趣,而且很炫又能跨浏览器的动画效果样式集锦,你可以直接使用到项目中。
DynCSS将你的CSS解析成-dyn-(attribute)规则。这些规则是模拟浏览器事件(如滚动和缩放)的javascript表达式,其结果会应用到CSS属性上。
Effeckt.css是一个集合了众多新鲜而又实用的CSS/jQuery动画效果,这些都适用于网站或是移动APP的网页。比如一些AJAX弹出框动画、菜单动画、图片标题展示等等。同时这些特效动画还能进一步提升网站的用户体验,简单而且实用。
Animatable用于创建CSS3动画,其创建的动画可以在任何平台或设备(包括Android、BlackBerry、iOS 和WebOS等)中的现代浏览器上运行。即便不熟悉CSS,它也能帮助你创建多场景的CSS3动画。
Hover是一套基于CSS3的鼠标悬停效果和动画,这些效果和动画可以非常轻松的被应用到按钮、LOGO以及图片等元素中。所有这些效果都是只需要单一的标签,必要的时候使用before 和after伪元素。因为使用了CSS3 过渡、转换和动画效果,因此它只支持Chrome、Firefox 和Safari 等现代浏览器。
Bounce.js是一个用于制作漂亮CSS3关键帧动画的JavaScript库。只需添加一个组件,选择预设,然后你就可以得到一个短网址或者导出为CSS代码。
Magic Animations是CSS3动画的包,伴有特殊的效果,用户可以自由的在web 项目中使用。
Kitecss是一个灵活的CSS 助手库,能帮助程序员实现各种页面布局。
Buttons是一个简单的框架,用来生成网页上漂亮的按钮。
Odometer是JavaScript、CSS库,用来创建类似于\”汽车行程里数显示、航班信息板\”的特效用户界面。
Csshake是一个使用CSS3实现的动画样式,使用SASS编写,利用它我们可以实现多种不同样式的抖动效果(如下面的GIF图像)。
本站文章除注明转载外,均为本站原创或翻译
jQuery 动画制作与特效
使用show()和hide()方法
在普通的javascript编程中,要实现元素的显示、隐藏通常是利用其CSS的display属性或者visibility属性。
在jQuery中提供了show()和hide()两个方法,来直接实现元素对象的显示和隐藏。
jQuery代码:
HTML代码:
制作多级菜单
jQuery代码:
HTML代码:
理解: e.target是引发事件的元素
this是当前执行事件句柄的元素,this等于e.currentTarget(在事件冒泡阶段中的当前DOM元素 )
if(this==e.target)语句作用。
this指的是定义事件的所有含有ul的li标签。
e.target指的是触发事件的对象,可能是包含ul的li, 也可能是该li内部的任何元素, 显然我们不能点击内部任意位置都触发事件,
所以必须添加判断, 只有点击当前菜单选项时才执行收起子菜单动作;如果去掉这个判断, 那么只要你点击二级菜单的任意位置, 就会收起菜单,
显然是不行的, 你可以去掉判断看看效果就明白了。
使用toggle()方法实现显隐切换
曾经介绍过toggle()方法,该方法接受两个函数作为参数,相互切换;
如果不接受参数,toggle()方法将默认为在show()和hide()之间切换,因此修改上面案列为:
HTML代码:
元素显隐和渐入渐出效果
show(duration,[callback]) duration表示动画执行的时间长短,可以是表示速度的字符串,包括slow、normal、fast,
也可以是表示时间的整数(毫秒);callback为可选的回调函数,在动画完成后执行;
jQuery代码:
HTML代码:
与show()和hide()方法一样,toggle()方法也可以接受两个参数,制作成动画的效果;
jQuery代码:
HTML代码:
使用fadeIn()和fadeOut()方法
fadeIn(duration,[callback]) 渐显(颜色增强)
fadeOut(duration,[callback]) 渐隐(颜色褪色)
其中参数duration和callback与slow()、hide()中的完全相同;
制作渐渐褪色的动画效果:
jQuery代码:
HTML代码:
使用fadeTo()方法自定义变幻目标透明度;
jQuery代码:
fadeTo(duration,opacity,callback)方法,能够让开发者自定义变幻的目标透明度.其中opacity的取值范围为0.0~1.0
HTML代码:
当使用fadeOut()方法时,图片完全消失后将不在占用<p>的空间,
而使用fadeTo(1000,0)时,虽然图片也完全不显示,但仍然占用着标记<p>的空间
幻灯片效果
slideUp()和slideDown()来模拟PPT中的类似幻灯片拉窗帘的特效
slideUp(duration,[callback]) 上滑(消失)
slideDown(duration,[callback]) 下滑(显示)
jQuery代码:
HTML代码:
停止所有在指定元素上正在运行的动画。
stop([clearQueue],[jumpToEnd])
clearQueue:如果设置成true, 则清空队列。可以立即结束动画。
gotoEnd:让当前正在执行的动画立即完成, 并且重设show和hide的原始样式, 调用回调函数等。
点击Go之后开始动画,点Stop之后会在当前位置停下来
HTML 代码:
jQuery 代码:
实例:阻止动画播放
delay(duration,[queueName])
设置一个延时来推迟执行队列中之后的项目。
总结:
1、基本效果
show():将隐藏的元素显示
show(speed,[callback]) :以动画的效果显示
hide():将显示的元素隐藏
hide(speed,[callback]) :以动画的效果隐藏
toggle():显示或者隐藏
toggle(switch) :如果参数为true则表示只显示, 反之如果参数为false则表示只隐藏
toggle(speed,[callback]):以动画的方式显示或者是隐藏
参数说明:
speed:速度 单位为毫秒
\”slow\”, 缓慢
\”normal\”, 正常
\”fast\” 快速
callback:回调函数 当动画执行完毕以后再来执行的函数
2、滑动效果
slideDown():将隐藏的元素显示
slideDown(speed,[callback]) :以动画的方式显示
slideUp():将显示的元素隐藏
slideUp(speed,[callback]) :以动画的方式隐藏
slideToggle():隐藏或显示
slideToggle(speed,[callback]):以动画的方式隐藏或者显示
参数说明:
speed:速度 单位为毫秒
\”slow\”, 缓慢
\”normal\”, 正常
\”fast\” 快速
callback:回调函数 当动画执行完毕以后再来执行的函数
3、淡入淡出
fadeIn():淡入
fadeIn(speed,[callback]) :以动画的方式进行淡入
fadeOut():淡出
fadeOut(speed,[callback]):以动画的方式进行淡出
fadeTo(speed,opacity,[callback]) :淡入淡出到指定值
opacity:透明度 取值:0-1之间 0表示完全透明 1表示不透明
callback:回调函数 当动画执行完毕以后再来执行的函数
show() 显示元素 hide()隐藏元素 toggle()显示和隐藏切换
fadeIn() 渐显(颜色增强) fadeOut()渐隐(颜色褪色) fadeTo() 自定义变换目标透明度 fadeToggle() 淡入和淡出切换
slideUp() 幻灯片上滑(消失) slideDown() 幻灯片下滑(显示) slideToggle() 幻灯片上滑和下滑切换
4 停止所有在指定元素上正在运行的动画。
stop([clearQueue],[jumpToEnd])
clearQueue:如果设置成true, 则清空队列。可以立即结束动画。
gotoEnd:让当前正在执行的动画立即完成, 并且重设show和hide的原始样式, 调用回调函数等。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。