加载中...

Nuxt3教程:添加Autoanimate 动画库

前言

AutoAnimate是一个零配置,插入式动画实用程序,可以为您的Web应用程序添加平滑过渡。您可以将其与React,Solid,Vue,Svelte或任何其他JavaScript应用程序一起使用。

正文

安装依赖

# yarn
yarn add @formkit/auto-animate
# npm
npm install @formkit/auto-animate
# pnpm
pnpm add @formkit/auto-animate

添加配置

如果想全局注册 v-auto-animate,则在nuxt.config.ts中增加配置:

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@formkit/auto-animate/nuxt'],
})

如果不想全局注册Vue指令,你可以直接将它导入到你想要使用它的组件中

import { vAutoAnimate } from '@formkit/auto-animate'。

AutoAnimate 基本使用

AutoAnimate基本上是一个接受父元素的单一函数(autoAnimate)。自动动画将应用于父元素及其直接子元素。当发生以下三个事件之一时,动画会被特别触发:

  1. 在DOM中添加一个子元素。
  2. 在DOM中删除子元素。
  3. 在DOM中移动子对象。

指令方式使用

一旦你注册了这个插件,它就可以通过在父元素中添加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>

请记住,传递给:key的值应该是唯一的值,否则动画将无法按预期工作。

可以通过直接设置指令的值来传递选项

composable方式使用

作为v-auto-animate指令的替代,Vue开发者可以使用useAutoAnimate composable。这个组合支持所有相同的强大功能,但也提供了一种启用和禁用动画的机制。

从@formkit/auto-animate/vue中导入组合(Nuxt模块将自动为您导入useAutoAnimate),并在script setup中调用它以创建模板ref。使用父元素上的ref属性将其存储在模板ref中:

<script setup>
import { ref } from 'vue'
import { useAutoAnimate } from '@formkit/auto-animate/vue'

const items = ref(["React", "Vue", "Svelte", "Angular"])

function sortAsc() {
  items.value.sort()
}
function sortDesc() {
  items.value.sort().reverse()
}

const [parent] = useAutoAnimate()
</script>

<template>
  <div>
    <button @click="sortAsc">Sort A-Z ↑</button>
    <button @click="sortDesc">Sort Z-A ↓</button>
  </div>
  <ul ref="parent">
    <li
      v-for="item in items"
      :key="item"
    >
      {{ item }}
    </li>
  </ul>
</template>

Vue用户可以直接将选项传递给composable:useAutoAnimate({ duration: 100 })

后记

给自己的前端代码增加一些简单的动画即可让项目看起来更酷炫

posted @ 2024-01-15 11:36  水车  阅读(409)  评论(0编辑  收藏  举报