前端必会的anime动画库
CSDN话题挑战赛第2期
参赛话题:学习笔记
大家好,我是前端实验室
的大师兄!一名资深的互联网玩家,专注分享大前端领域技术、面试宝典、学习资料等~
新年公司派给我的第一个项目就是一个小游戏,游戏中涉及到一部分动画,今天大师兄就给大家推荐一款小巧而又强大的动画库:anime.js
介绍
anime.js
是一款功能强大的javascript
动画库插件,anime.js
可以和CSS3 属性,SVG,DOM 元素和JS 对象一起工作,制作出各种高性能,平滑过渡的动画效果。
压缩完只有9kb左右,麻雀虽小,却五脏俱全。
github上也有41.5k 的star,最近的更新也在十天前
安装方式
方式一:使用npm 进行安装
npm install animejs
方式二:下载anime.js 的文件包,在页面中引入anime.min.js 文件。
<script type="text/javascript" src="js/anime.min.js"></script>
使用
引入anime.js后,就可以开始来编写动画效果。
首先来编写一个弹球的动画效果,HTML:
<div class="wrapper"><div class="ball"></div>
</div>
CSS代码:
body {margin: 0;padding: 0;overflow: hidden;background-color: black;
}
.wrapper {height: 80vh;width: 100%;margin: 0;padding: 0;position: relative;overflow: hidden;border: 1px solid blue;background-color: lightblue;color: #444;
}.ball {height: 200px;width: 200px;position: absolute;top: 20px;bottom: 0;left: calc(50% - 100px);background-color: darkblue;border-radius: 50%;
}
使用anime.js提供的方法来编写好基本的结构:
var bouncingBall = anime({//code here});
然后在里面使用anime.js提供的对应的方法来实现动画效果,比如要操纵的dom元素,动画的时间以及缓动曲线等等。
var bouncingBall = anime({targets: '.ball',translateY: '50vh',duration: 300,loop: true,direction: 'alternate',easing: 'easeInCubic'
});
targets
属性是用来指定要运动的元素,可以使用类似CSS选择器来选择元素,或者是下面几种方法来选择元素:
DOM选择方法document.querySelector('.ball')
或者是document.querySelectorAll('.ball')
方法;
js数组的方式`['.ball']``
js对象的方式{elementName: 'ball'}
如果你要操作的元素有多个值或者是要操作多个元素,可以这样做:
var bouncingBall = anime({targets: ['.ball', '.kick'],//rest of the code
});
translateY
也就是要操作元素做出变化的属性,和CSS中操作元素的方法非常相似。作为一个经常和动画打交道的前端开发人员,对于使用transform属性来提高动画的性能想必是非常清楚的,同样在使用animejs来编写动画效果的时候,特别涉及操作元素位置的时候也建议使用transform等属性来操作来提高动画性能。
duration
即动画的运行时间。如果要延迟执行动画,可以使用delay这个参数来指定动画延迟时间。
loop
属性是用来定义动画是否循环运行。默认值是false,即动画只运行一次。当然也可以指定具体的数字来定义动画运行的次数或者是定义为true一只无限循环运行下次。
direction
属性定义是否应该轮流反向播放动画。有三个值default
、alternate
和reverse
。alternate表示动画应该轮流反向播放。reverse表示反方向运行。
easing
它是用来定义动画运行速度曲线的,与CSS3中的动画曲线一样。
在上面的代码中,实现的效果只是球的上下弹起的效果。在真实世界中,当一个球掉在地上的时候,球会受到自身的压力从而产生一个变形的效果,可以使用transform中的scaleX来达到这个动画效果。
下面是具体代码:
var bouncingBall = anime({targets: '.ball',translateY: '50vh',duration: 300,loop: true,direction: 'alternate',easing: 'easeInCubic',//new codescaleX: {value: 1.05, //代表缩放的值duration: 150, // 运行时间delay: 268 //延迟多久执行}
});
动画控制
anime.js
还提供了诸如play、pause和restart
方法来控制动画的执行、暂停和重新运行动画。也可以使用seek()
方法来跳帧运行动画。
下面通过按钮
分别来控制动画开始效果:
//新增一个button
<div class="wrapper"><button class="btn">开始</button><div class="ball"></div>
</div>//js代码获取按钮,并添加点击事件
var btn = document.querySelector('.btn')
btn.addEventListener('click', function(e) {e.preventDefault();bouncingBall.play();
});
效果如下:
上面通过两个简单的实例介绍了anime.js的一个使用方法,更多的使用方法就要靠你的想象力了。
前端必会的anime动画库相关推荐
- Web前端:2022年最佳Javascript动画库
当你考虑制作网站时,你首先考虑的是如何使你的网站脱颖而出,虽然有很多方法可以让它脱颖而出,比如发布独特的内容.制作引人入胜的视频和文章,但吸引人的最佳方式之一是动画和图形.前端开发人员利用Javasc ...
- animejs走马灯_web前端攻城狮超爱的JS动画库插件—anime.js
作为一名web前端攻城狮,除了完成日常业务逻辑处理之外,也会去注重一些用户体验交互的问题.特别是如今web前端的发展很快,很多优秀js插件层出不穷.对于web前端开发者,也要会利用这些现有的js插件, ...
- 前端进阶必学必会动画学习之Animate.css的使用与解析:一个强大而酷炫的CSS3动画库Animate.css使用方法教程
简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(flip).旋转(rotateIn/rotateOut). ...
- 9个前端动画库让你的交互更加性感
***上期入口:***9个用来爬取网络站点的Python库 1️⃣Animate.css CSS3 动画库,也是目前最通用的动画库. **官网:**https://daneden.github.io/ ...
- 10个前端动画库让你的交互更加炫酷
Animate.css animate.css 是一个使用CSS3的animation制作的动画效果的CSS集合,里面预设了很多种常用的动画,且使用非常简单. GitHub:github.com/an ...
- #前端开发# 【一】 之Animate动画库的安装及详细用法
#前端开发# 之Animate动画库的安装及详细用法 在前端的开发过程中,我们免不了需要动画来实现更多酷炫效果, 下面主要是介绍Animate这款强大的动画库,以及其安装及使用 相信大家也已经了解过A ...
- JavaScript动画库:Anime.js
前言 今天简单学习一下JavaScript动画库:Anime.js.官网的介绍是: Anime.js (/ˈæn.ə.meɪ/) 是一个轻量的JavaScript 动画库, 拥有简单而强大的API. ...
- anime.js 动画_Anime.js –轻量级JavaScript动画库
网络动画已经走了很长一段路. 开发人员不仅可以使用CSS / SVG / JS组合制作任何动画,而且还提供数十个免费库来节省时间. 我的最爱之一是Anime.js ,这是一个完全免费的开源JavaSc ...
- 【Anime.js】——JavaScript动画库:Anime.js——学习笔记
目录 一.搭建开发环境 二.基本功能和使用 开始制作动画 动画属性 三.anime.stagger--交错动画 四.timeline--时间轴 五.控制.回调与助手 一.控制 二.回调 三.助手 六. ...
最新文章
- 长沙医学院计算机系怎么样,长沙医学院有哪些专业及什么专业好
- 从CNN视角看在自然语言处理上的应用 原创 2017年10月24日 00:00:00 1339 作者 | 卞书青 卷积神经网络(Convolutional Neural Network)最早是应用在
- Delphi中DLL或Package窗体载入与显示
- .net 垃圾回收机制
- 吴恩达,确诊新冠阳性!
- pytorch Tensor
- VSCode好用的Python插件及配置
- 搭建Discuz论坛的两种方式
- c#web页面显示弹窗_C# .NET弹出窗口
- 小米5短接点 | 小米红米高通短接9008教程视频教程 | 高通9008驱动下载 | 不拆机怎么直接进9008 | 什么线能直接进9008
- wps怎么图片透明_wps中图片怎么样调透明度_word设置图片背景透明的图文教程-爱纯净...
- 如何解决未能初始化战场服务器,microsoft net framework配置系统未能初始化
- switch在pc上动态调试(系统:12.0.1|AMS0.19.1|E)
- PDF虚拟打印机(pdfFactory) v5.11 官方版
- RGB格式图片转YUV图片
- 量化交易18-先认识K线形态:下跌形态:十字暮星、暮星、墓碑十字/倒T十字、上吊线、风高浪大线、修正陷阱、颈内线、颈上线、黄包车夫、纺锤、停顿形态、条形三明治
- 如何衡量一个算法的好坏
- go之官方依赖管理工具dep安装和使用
- Excel 函数Min求最小值值为空时为零的情况如何处理,或者排除0怎么做
- 你觉得学 Python 还是 Java 更好找工作?