uniapp 退场动画
uniapp 退场动画实现方法
在uniapp中实现退场动画(即页面离开或组件消失时的动画效果)可通过以下方式完成:
CSS动画结合生命周期
通过uni.navigateBack或页面生命周期触发CSS动画:
.leave-animation {
animation: leave 0.5s forwards;
}
@keyframes leave {
from { transform: translateX(0); opacity: 1; }
to { transform: translateX(-100%); opacity: 0; }
}
在页面组件的onUnload或beforeDestroy生命周期中动态添加动画类名。
使用transition组件
利用Vue的过渡效果实现组件级退场动画:
<transition name="slide-out">
<view v-if="show" class="content">内容区域</view>
</transition>
.slide-out-leave-active {
transition: all 0.3s ease;
}
.slide-out-leave-to {
transform: translateY(20px);
opacity: 0;
}
动画API实现
调用uni-app的动画API创建更复杂的退场效果:
export default {
methods: {
leaveAnimation() {
this.animation.translateX(-100).opacity(0).step({ duration: 300 })
this.animationData = this.animation.export()
setTimeout(() => {
uni.navigateBack()
}, 300)
}
}
}
第三方动画库
引入animate.css等库快速实现预设动画:
<view class="animated fadeOutLeft" v-if="show"></view>
注意事项
- H5端需注意浏览器兼容性,建议增加
-webkit-前缀 - 小程序端部分CSS属性受限,需使用各平台支持的动画属性
- 动画持续时间应控制在300-500ms以获得最佳用户体验
- 复杂动画建议使用CSS硬件加速属性如
transform和opacity







