vue如何实现slide动画
使用 Vue Transition 实现 Slide 动画
Vue 的 <transition> 组件可以轻松实现滑动动画效果。通过 CSS 过渡或动画定义滑入滑出的效果。
<transition name="slide">
<div v-if="show">滑动内容</div>
</transition>
.slide-enter-active, .slide-leave-active {
transition: transform 0.5s ease;
}
.slide-enter, .slide-leave-to {
transform: translateX(100%);
}
使用第三方库(如 VueUse)
VueUse 的 useTransition 提供更灵活的动画控制,适合复杂滑动效果。

import { useTransition } from '@vueuse/core'
const source = ref(0)
const output = useTransition(source, {
duration: 500,
transition: [0.75, 0, 0.25, 1]
})
自定义 JavaScript 动画
通过 Vue 的 JavaScript 钩子实现精细控制的滑动动画。

<transition
@before-enter="beforeEnter"
@enter="enter"
@leave="leave"
>
<div v-if="show">自定义滑动内容</div>
</transition>
methods: {
beforeEnter(el) {
el.style.transform = 'translateX(100%)'
},
enter(el, done) {
anime({
targets: el,
translateX: 0,
duration: 500,
complete: done
})
},
leave(el, done) {
anime({
targets: el,
translateX: '100%',
duration: 500,
complete: done
})
}
}
使用 Animate.css 预定义动画
结合 Animate.css 快速实现专业滑动效果。
<transition
enter-active-class="animate__animated animate__slideInRight"
leave-active-class="animate__animated animate__slideOutRight"
>
<div v-if="show">Animate.css 滑动</div>
</transition>
响应式滑动方向
通过动态类名实现不同方向的滑动效果。
.slide-left-enter {
transform: translateX(100%);
}
.slide-right-enter {
transform: translateX(-100%);
}
<transition :name="`slide-${direction}`">
<div v-if="show">方向性滑动</div>
</transition>






