anime.js 中文文档,如何全面掌握这一动画库?

Anime.js 是一个轻量级的 JavaScript 动画库,它允许你轻松地为网页元素添加动画效果。通过简单的 API,你可以控制动画的持续时间、延迟、缓动函数等参数,实现丰富的动画效果。

anime.js 中文文档:全面了解和使用

anime.js 中文文档,如何全面掌握这一动画库?

背景介绍

Anime.js 是一个轻量级的 JavaScript 动画库,具有简单而强大的API,它能够对 CSS 属性、SVG、DOM 和 JavaScript 对象进行动画处理,Anime.js 开源、免费、极小、简单易用,是开发者制作动画的得力工具,本文将详细介绍 Anime.js 的安装、引入、目标对象、可动画的目标属性以及基础参数等内容。

安装及引入

安装

使用 npm 安装 Anime.js:

npm install animejs --save

引入

在项目中引入 Anime.js:

import anime from 'animejs';

如果使用的是 TypeScript,还需要下载类型定义文件:

npm i --save-dev @types/animejs

动画的目标对象

Anime.js 支持多种类型的目标对象,包括 CSS 选择器、DOM 元素、数组和 JavaScript 对象等。

CSS 选择器

通过 CSS 选择器获取元素:

<div class="item"></div>
<el-button type="primary" @click="move">移动</el-button>
<script>
let move = () => {
    anime({
        targets: '.item',
        translateX: 250
    });
};
</script>

DOM 元素 / 元素序列

使用 DOM 节点或节点的集合作为动画目标:

let move = () => {
    let elements = document.querySelectorAll('.item');
    anime({
        targets: elements,
        translateX: 250
    });
};

数组

以数组作为动画目标:

anime.js 中文文档,如何全面掌握这一动画库?

let move = () => {
    anime({
        targets: ['.item1', '.item2'],
        translateX: 250
    });
};

可动画的目标属性

CSS 属性

对目标的 CSS 属性进行动画处理:

anime({
    targets: '.item',
    left: '240px',
    backgroundColor: 'blue',
    borderRadius: ['0%', '50%'],
    easing: 'easeInOutQuad'
});

CSS3 Transforms 属性

针对 CSS 的 transforms 属性进行动画处理:

anime({
    targets: '.item',
    translateX: 300,
    scale: 2,
    easing: 'easeInOutQuad'
});

JavaScript 对象属性

包含数值的任何 JavaScript 对象属性都可以设置动画:

var objPropLogEl = document.querySelector('.item');
var myObject = { prop1: 0, prop2: '0%' };
anime({
    targets: myObject,
    prop1: 50,
    prop2: '100%',
    easing: 'linear',
    round: 1,
    update: function() {
        objPropLogEl.innerHTML = myObject.prop1 + '    ' + myObject.prop2;
    }
});

DOM 属性

任何包含数值的 DOM 属性都可以设置动画:

anime({
    targets: '.dom-attribute-demo input',
    value: [0, 1000],
    round: 1,
    easing: 'easeInOutExpo'
});

SVG 属性

与任何其他 DOM 属性一样,包含至少一个数值的所有 SVG 属性都可以设置动画:

anime({
    targets: ['.svg-attributes-demo polygon', 'feTurbulence', 'feDisplacementMap'],
    points: '64 128 8.574 96 8.574 32 64 0 119.426 32 119.426 96',
    baseFrequency: 0,
    scale: 1,
    loop: true,
    direction: 'alternate',
    easing: 'easeInOutExpo'
});

动画基础参数

duration(持续时间)

持续时间,默认为1000毫秒:

anime({
    targets: '.item',
    translateX: 300,
    duration: 3000
});

delay(延迟)

延迟时间,默认为0毫秒:

anime({
    targets: '.item',
    translateX: 300,
    delay: 500
});

endDelay(末端延时)

末端延时,默认为0毫秒:

anime({
    targets: '.item',
    translateX: 300,
    endDelay: 500
});

easing(时间曲线)

时间曲线,默认值为easeOutElastic(1, .5)

anime.js 中文文档,如何全面掌握这一动画库?

anime({
    targets: '.item',
    translateX: 300,
    easing: 'linear' // 可选值:linear, cubicBezier, easeInOutSine, step(5), spring(400), elastic(400), bounce等
});

round(四舍五入)

四舍五入,当设置为1时没有小数点:

anime({
    targets: '.item',
    innerHTML: [0, 100],
    easing: 'linear',
    round: 1,
    duration: 2000
});

特殊属性

特殊属性允许为动画的每个属性定义特定参数。

var specificPropertyParameters = anime({
    targets: '#specificPropertyParameters .el',
    translateX: { value: 250, duration: 800 },
    rotate: { value: 360, duration: 1800, easing: 'easeInOutSine' },
    scale: { value: 2, duration: 1600, delay: 800, easing: 'easeInOutQuart' },
    delay: 250 // All properties except 'scale' inherit 250ms delay
});

连接多个动画(时间线)

可以使用时间线连接多个动画,一个动画完结后接着进行下一个动画:

var basicTimeline = anime.timeline();    //基本的时间线,新建后通过add增加动画
basicTimeline
    .add({targets: '#basicTimeline .square.el', translateX: 250, easing: 'easeOutExpo'})
    .add({targets: '#basicTimeline .circle.el', translateX: 250, easing: 'easeOutExpo'})
    .add({targets: '#basicTimeline .triangle.el', translateX: 250, easing: 'easeOutExpo'});

FAQs(常见问题解答)

Q1:如何在Vue3 Composition API中使用Anime.js?

A1:在Vue3 Composition API中使用Anime.js,需要确保在onMounted生命周期钩子中初始化动画,以避免setup阶段执行方法中不能获取到DOM的问题,以下是示例代码:

<template>
    <div class="bg"></div>
</template>
<script setup>
    import anime from 'animejs';
    let bgAnimate:anime.AnimeInstance;
    onMounted(() => {
        bgAnimate = anime({
            targets: '.bg',
            translateX: 250,
            easing: 'easeInOutSine'
        });
    });
</script>

各位小伙伴们,我刚刚为大家分享了有关“anime.js 中文文档”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/786902.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seoK-seo
Previous 2025-01-16 11:57
Next 2025-01-16 12:05

相关推荐

  • html怎么改文字大小

    HTML怎么改文字大小在HTML中,我们可以使用CSS(层叠样式表)来改变文字的大小,本文将详细介绍如何使用CSS来调整文字大小,并提供一些示例代码。使用内联样式修改文字大小1、在HTML标签中直接添加内联样式在HTML标签中,我们可以直接添加style属性来设置文字大小。&lt;p style=&quot;font-……

    2024-01-12
    0126
  • 在vs上写html5怎么运行

    在Visual Studio(VS)上编写和运行HTML5应用程序是一个相对直接的过程,因为VS是一个强大的集成开发环境(IDE),它支持多种编程语言和框架,虽然它主要用于C, VB.NET和其他.NET语言的开发,但它也可以用来编辑和运行HTML5, CSS和JavaScript代码,以下是如何在VS上进行HTML5开发的步骤:安装……

    2024-02-08
    0204
  • js中怎么写css「js中怎么写jsx」

    内联样式 内联样式是最直接的方式,可以直接在HTML元素的style属性中写入CSS代码。这种方式的优点是可以直接修改元素的样式,不需要额外的CSS文件。但是,如果需要修改的元素较多,或者样式较复杂,这种方式就不适用了。 <div style="color:...

    2023-12-15
    0142
  • html怎么隐藏a标签页

    在HTML中,我们可以通过CSS样式来隐藏a标签,这通常用于网页设计中,当我们不希望用户直接点击某个链接时,可以使用这种方法,以下是详细的步骤和代码示例:1、内联样式最简单的方式是使用内联样式,直接在HTML元素中添加style属性,我们可以将a标签的display属性设置为none,这样该标签就不会显示在页面上。&lt;a ……

    2024-01-24
    0132
  • javascript设计者

    在软件开发中,设计模式是一种解决特定问题的优秀解决方案,它们可以帮助我们编写出更加模块化、可重用和可维护的代码,JavaScript作为一种广泛使用的编程语言,拥有丰富的设计模式库,本文将深入探讨JavaScript中的一些常见设计模式,以及如何在实际项目中应用它们。1. 单例模式(Singleton)单例模式是一种确保一个类只有一个……

    2023-11-06
    0133
  • html怎么做文字环绕

    在HTML中,文字环绕可以通过CSS来实现,CSS(层叠样式表)是一种用于描述HTML或XML(包括如SVG、MathML等衍生技术)文档的样式的语言,通过使用CSS,你可以控制文本的布局和外观,包括文字环绕的方式。下面是一个简单的示例,展示如何使用CSS实现文字环绕:&lt;!DOCTYPE html&gt;&amp……

    2024-01-30
    0187

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入