网站首页 > 技术文章 正文
本文给大家介绍一个一行代码添加过渡动画的库。
介绍
AutoAnimate是一个零配置、投入式动画实用程序,可以为您的Web应用程序添加平滑的过渡。您可以将其与React、Solid、Vue、Svelte或任何其他JavaScript应用程序一起使用。
官方地址: https://auto-animate.formkit.com/
github 地址: https://github.com/formkit/auto-animate
简而言之,AutoAnimate 是一个能够一行代码直接添加过度动画的库,无需再去了解繁杂的 css 属性,以及动画相关的知识。
在一些快速验证的场景中尤其适用。
本文主要介绍在 vue 中的使用方式。
安装
安装依赖
yarn add @formkit/auto-animate
注册指令
import { createApp } from 'vue'
import { autoAnimatePlugin } from '@formkit/auto-animate/vue'
import App from 'App.vue'
createApp(App).use(autoAnimatePlugin).mount('#app')
当然,你也可以直接引入使用
import { vAutoAnimate } from '@formkit/auto-animate'。
基本使用
插件注册之后即可在你需要动态变化的元素(主要是循环中的元素)的父元素中使用v-auto-animate 即完成,非常地简单,以下为官方示例:
<script setup>
import { ref } from 'vue'
const items = ref(["","","","","", ... ])
function removeItem(toRemove) {
items.value = items.value.filter((item) => item !== toRemove)
}
</script>
<template>
<h5>Click emojis to remove them.</h5>
<ul v-auto-animate>
<li
v-for="item in items"
:key="item"
@click="removeItem(item)"
>
{{ item }}
</li>
</ul>
</template>
运行可得以下结果:
在这里插入图片描述
一个循环列表删除单条的动画就自动加上去了,无需再用其他的什么操作
进阶使用
AutoAnimate 不仅对普通列表生效;
同时也对卡片、横纵坐标盒子,甚至交换位置的列表项生效
例如如下动画:(来自官方)
在这里插入图片描述
其核心代码与普通使用方法一致
<div class="boxes" v-auto-animate="{ duration: 500 }">
替换自带的动画
如果对它自带的动画和过度方式不满意,也可以将它替换掉,只需要引入AutoAnimate 方法,并修改其内容重新定义 add、remove、remain的动画帧即可。
import autoAnimate, { getTransitionSizes } from '@formkit/auto-animate'
autoAnimate(parentElement, (el, action, oldCoords, newCoords) => {
let keyframes
// supply a different set of keyframes for each action
if (action === 'add') {
keyframes = [
{ transform: 'scale(0)', opacity: 0 },
{ transform: 'scale(1.15)', opacity: 1, offset: 0.75 },
{ transform: 'scale(1)', opacity: 1 }
]
}
if (action === 'remove') {
// ...
}
if (action === 'remain') {
// ...
}
return new KeyframeEffect(el, keyframes, { duration: 600, easing: 'ease-out' })
}))
总结
AutoAnimate 实现了一行代码自动添加过渡动画,时间原因未对其原理进行分析,但看其替换默认动画的实现方式,应当在使用 js 根据情况在修改相关元素的属性。
对于快速验证的小应用,尤其涉及到循环列表或者是横纵坐标循环 box 的,甚至交换位置等交互的,这无疑是一个极好的选择。
不仅如此,对于后端人士,不得不写一点前端的时候,希望快速搞一点动效,以免显得生硬,但又对 css 和过渡动画了解没那么深入,这就更是一个不错的选择了。
猜你喜欢
- 2025-05-23 Dynamics.js – 创建逼真的物理动画的 JS 库
- 2025-05-23 CSS3 过渡与动画
- 2025-05-23 10个惊人的文字动画特效「值得收藏」
- 2025-05-23 Vue3 流程图组件库 :Vue Flow
- 2025-05-23 一组开源免费的Web动画图标,荐给需要的设计师和程序员
- 2025-05-23 推荐一款开箱即用的动画可视化编辑器(rean-editor)
- 2025-05-23 资源分享:异常强大的预设css3动画库Animate
- 2025-05-23 Vue3 生态:10 个最强大的动效组件库!
- 2025-05-23 实用干货:最全的Loading动画合集网站!复制即用
- 2025-05-23 一款 Js 动画库,简单几行代码就能写出丝滑流畅、高性能的动画效果
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)