uniapp 退场动画
实现退场动画的方法
在UniApp中实现退场动画可以通过CSS动画、Vue过渡效果或第三方动画库完成。以下是几种常见方法:
使用CSS动画
通过定义@keyframes和animation属性实现退场效果,适用于简单动画场景。
.fade-out {
animation: fadeOut 0.5s forwards;
}
@keyframes fadeOut {
from { opacity: 1; }
to { opacity: 0; transform: translateY(20px); }
}
<view class="fade-out" v-if="showElement">内容</view>
使用Vue过渡效果
通过Vue的<transition>组件结合CSS类名实现,适合组件级的动画控制。

<transition name="slide-out">
<view v-if="showElement">内容</view>
</transition>
.slide-out-leave-active {
transition: all 0.3s ease;
}
.slide-out-leave-to {
opacity: 0;
transform: translateX(100px);
}
使用第三方动画库(如Animate.css)
引入动画库后直接调用预定义动画类名,快速实现复杂效果。
-
安装Animate.css:

npm install animate.css -
在页面中引用:
import 'animate.css/animate.min.css'; -
使用示例:
<view class="animate__animated animate__fadeOutLeft" v-if="showElement" > 内容 </view>
通过JavaScript控制动画
动态绑定样式实现更灵活的动画控制,适合需要交互触发的场景。
<view
:style="{
opacity: animateOpacity,
transform: `translateY(${animateOffset}px)`
}"
>
内容
</view>
data() {
return {
animateOpacity: 1,
animateOffset: 0
}
},
methods: {
startExitAnimation() {
this.animateOpacity = 0;
this.animateOffset = 50;
}
}
注意事项
- 性能优化:避免过多使用复杂动画,尤其在低端设备上。
- 平台差异:部分CSS属性在H5和小程序端表现可能不同,需测试兼容性。
- 动画时机:退场动画通常与
v-if或v-show配合,注意生命周期钩子的调用顺序。






