当前位置:首页 > VUE

vue交错实现代码

2026-01-22 10:06:51VUE

Vue 交错动画实现方法

使用 Vue 的 <transition-group> 组件结合 CSS 过渡可以实现交错动画效果。以下是一个典型实现方式:

<template>
  <transition-group 
    name="staggered-fade" 
    tag="ul"
    @before-enter="beforeEnter"
    @enter="enter"
    @leave="leave"
  >
    <li v-for="(item, index) in items" :key="item.id" :data-index="index">
      {{ item.text }}
    </li>
  </transition-group>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, text: 'Item 1' },
        { id: 2, text: 'Item 2' },
        { id: 3, text: 'Item 3' }
      ]
    }
  },
  methods: {
    beforeEnter(el) {
      el.style.opacity = 0
      el.style.transform = 'translateY(20px)'
    },
    enter(el, done) {
      const delay = el.dataset.index * 150
      setTimeout(() => {
        Velocity(
          el,
          { opacity: 1, translateY: 0 },
          { complete: done }
        )
      }, delay)
    },
    leave(el, done) {
      const delay = el.dataset.index * 150
      setTimeout(() => {
        Velocity(
          el,
          { opacity: 0, translateY: '20px' },
          { complete: done }
        )
      }, delay)
    }
  }
}
</script>

使用 CSS 实现交错动画

纯 CSS 方案可以通过自定义属性实现延迟控制:

.staggered-fade-move {
  transition: transform 0.5s;
}

.staggered-fade-enter-active,
.staggered-fade-leave-active {
  transition: all 0.5s;
}

.staggered-fade-enter,
.staggered-fade-leave-to {
  opacity: 0;
  transform: translateY(20px);
}

.staggered-fade-enter-active {
  transition-delay: calc(var(--stagger-index) * 0.1s);
}

基于 GSAP 的高级实现

对于复杂动画场景,可以使用 GSAP 时间线:

import { gsap } from 'gsap'

methods: {
  animateItems() {
    const items = this.$el.querySelectorAll('li')
    gsap.from(items, {
      duration: 0.5,
      opacity: 0,
      y: 20,
      stagger: 0.1,
      ease: 'power2.out'
    })
  }
}

动态调整延迟时间

通过计算属性动态控制延迟时间:

computed: {
  animatedItems() {
    return this.items.map((item, index) => ({
      ...item,
      style: {
        '--delay': `${index * 0.1}s`
      }
    }))
  }
}

以上方法均可实现 Vue 中的交错动画效果,开发者可根据项目需求选择合适方案。CSS 方案适合简单场景,GSAP 适合复杂动画,而 Velocity.js 提供了良好的性能平衡。

vue交错实现代码

标签: 代码vue
分享给朋友:

相关文章

vue实现单选

vue实现单选

Vue 实现单选功能 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定一个变量,可以实现单选功能。单选按钮的…

拖拽式编程vue实现

拖拽式编程vue实现

拖拽式编程在 Vue 中的实现方法 使用 HTML5 原生拖放 API Vue 可以结合 HTML5 的拖放 API 实现基础拖拽功能。通过 draggable 属性标记可拖拽元素,监听 dragst…

在线脑图 vue 实现

在线脑图 vue 实现

在线脑图 Vue 实现方案 使用开源库实现 推荐使用 mind-elixir 或 jsmind 这类开源库,它们专为脑图设计且支持 Vue 集成。 安装依赖: npm install mi…

vue设计与实现下载

vue设计与实现下载

vue设计与实现电子书下载 《Vue.js设计与实现》是一本深入解析Vue.js框架原理的书籍,由霍春阳(HcySunYang)撰写。以下是获取该资源的常见途径: 正版购买渠道 京东、…

vue优秀实现

vue优秀实现

Vue.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue 实现pc

vue 实现pc

Vue 实现 PC 端应用的核心要点 Vue.js 是一个渐进式框架,适合构建 PC 端单页应用(SPA)或复杂的前端界面。以下是实现 PC 端应用的关键方法和注意事项: 项目初始化与工程化配置 使…