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属性定义是否应该轮流反向播放动画。有三个值defaultalternatereverse。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动画库相关推荐

  1. Web前端:2022年最佳Javascript动画库

    当你考虑制作网站时,你首先考虑的是如何使你的网站脱颖而出,虽然有很多方法可以让它脱颖而出,比如发布独特的内容.制作引人入胜的视频和文章,但吸引人的最佳方式之一是动画和图形.前端开发人员利用Javasc ...

  2. animejs走马灯_web前端攻城狮超爱的JS动画库插件—anime.js

    作为一名web前端攻城狮,除了完成日常业务逻辑处理之外,也会去注重一些用户体验交互的问题.特别是如今web前端的发展很快,很多优秀js插件层出不穷.对于web前端开发者,也要会利用这些现有的js插件, ...

  3. 前端进阶必学必会动画学习之Animate.css的使用与解析:一个强大而酷炫的CSS3动画库Animate.css使用方法教程

    简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(flip).旋转(rotateIn/rotateOut). ...

  4. 9个前端动画库让你的交互更加性感

    ***上期入口:***9个用来爬取网络站点的Python库 1️⃣Animate.css CSS3 动画库,也是目前最通用的动画库. **官网:**https://daneden.github.io/ ...

  5. 10个前端动画库让你的交互更加炫酷

    Animate.css animate.css 是一个使用CSS3的animation制作的动画效果的CSS集合,里面预设了很多种常用的动画,且使用非常简单. GitHub:github.com/an ...

  6. #前端开发# 【一】 之Animate动画库的安装及详细用法

    #前端开发# 之Animate动画库的安装及详细用法 在前端的开发过程中,我们免不了需要动画来实现更多酷炫效果, 下面主要是介绍Animate这款强大的动画库,以及其安装及使用 相信大家也已经了解过A ...

  7. JavaScript动画库:Anime.js

    前言 今天简单学习一下JavaScript动画库:Anime.js.官网的介绍是: Anime.js (/ˈæn.ə.meɪ/) 是一个轻量的JavaScript 动画库, 拥有简单而强大的API. ...

  8. anime.js 动画_Anime.js –轻量级JavaScript动画库

    网络动画已经走了很长一段路. 开发人员不仅可以使用CSS / SVG / JS组合制作任何动画,而且还提供数十个免费库来节省时间. 我的最爱之一是Anime.js ,这是一个完全免费的开源JavaSc ...

  9. 【Anime.js】——JavaScript动画库:Anime.js——学习笔记

    目录 一.搭建开发环境 二.基本功能和使用 开始制作动画 动画属性 三.anime.stagger--交错动画 四.timeline--时间轴 五.控制.回调与助手 一.控制 二.回调 三.助手 六. ...

最新文章

  1. 长沙医学院计算机系怎么样,长沙医学院有哪些专业及什么专业好
  2. 从CNN视角看在自然语言处理上的应用 原创 2017年10月24日 00:00:00 1339 作者 | 卞书青 卷积神经网络(Convolutional Neural Network)最早是应用在
  3. Delphi中DLL或Package窗体载入与显示
  4. .net 垃圾回收机制
  5. 吴恩达,确诊新冠阳性!
  6. pytorch Tensor
  7. VSCode好用的Python插件及配置
  8. 搭建Discuz论坛的两种方式
  9. c#web页面显示弹窗_C# .NET弹出窗口
  10. 小米5短接点 | 小米红米高通短接9008教程视频教程 | 高通9008驱动下载 | 不拆机怎么直接进9008 | 什么线能直接进9008
  11. wps怎么图片透明_wps中图片怎么样调透明度_word设置图片背景透明的图文教程-爱纯净...
  12. 如何解决未能初始化战场服务器,microsoft net framework配置系统未能初始化
  13. switch在pc上动态调试(系统:12.0.1|AMS0.19.1|E)
  14. PDF虚拟打印机(pdfFactory) v5.11 官方版
  15. RGB格式图片转YUV图片
  16. 量化交易18-先认识K线形态:下跌形态:十字暮星、暮星、墓碑十字/倒T十字、上吊线、风高浪大线、修正陷阱、颈内线、颈上线、黄包车夫、纺锤、停顿形态、条形三明治
  17. 如何衡量一个算法的好坏
  18. go之官方依赖管理工具dep安装和使用
  19. Excel 函数Min求最小值值为空时为零的情况如何处理,或者排除0怎么做
  20. 你觉得学 Python 还是 Java 更好找工作?

热门文章

  1. win10鼠标右边光圈一直闪烁,原因是
  2. Vscode鼠标乱跳
  3. 微信聊天记录没有备份可以恢复吗?吐血整理分享
  4. 分享一个网站地图生成工具
  5. U盘里面空间占用了.但是却不显示任何东西
  6. iOS 字体转换
  7. 兑换记录html页面,兑换码记录.html
  8. 实用的签到、日程表日历控件(可扩展)
  9. 中学计算机社团活动计划,社团活动方案
  10. imx6 vpu程序分析