Nuxt3使用AOS动画库

相关文档
Aos · Nuxt Modules

AOS - Animate on scroll library (michalsnik.github.io)

安装:

# Using pnpm
pnpm add -D nuxt-aos

# Using yarn
yarn add --dev nuxt-aos

# Using npm
npm install --save-dev nuxt-aos

配置 

  • nuxt.config.ts

export default defineNuxtConfig({
  modules: [
    'nuxt-aos'
  ],
  plugins: [
    '~/plugins/aos.client.ts'
  ]
})
  • plugins/aos.client.ts
import AOS from 'aos';

export default defineNuxtPlugin(nuxtApp => {
  nuxtApp.hook('app:mounted', () => {
    AOS.init({
      // AOS 配置项
      disable: false, // 是否禁用 AOS (可接受值: 'phone', 'tablet', 'mobile', boolean, expression, function)
      startEvent: 'DOMContentLoaded', // AOS 初始化事件
      initClassName: 'aos-init', // 初始化后添加的类名
      animatedClassName: 'aos-animate', // 动画过程中添加的类名
      useClassNames: false, // 是否将 `data-aos` 属性值作为类名添加
      disableMutationObserver: false, // 是否禁用 MutationObserver (高级)
      debounceDelay: 50, // 窗口大小调整时的去抖延迟 (高级)
      throttleDelay: 99, // 页面滚动时的节流延迟 (高级)

      // 以下选项可以通过 `data-aos-*` 属性覆盖
      duration: 1500, // 动画持续时间 (毫秒)
      easing: 'ease-out-quart', // 动画缓动函数
      offset: 120, // 触发动画的偏移量 (px)
      delay: 0, // 动画延迟 (毫秒)
      once: false, // 动画是否只播放一次
      mirror: false, // 元素滚动出视窗时是否反向播放动画
      anchorPlacement: 'top-bottom' // 动画触发点位置
    });
  });
});

自行测试一下

<div data-aos="fade-up"></div>