更新记录

1.0.0(2025-08-01) 下载此版本

uview动画插件


平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云
×

uni-app x(4.75)

Chrome Chrome插件版本 Safari Android Android插件版本 iOS 鸿蒙 微信小程序
1.0.0 - 13.0 1.0.0 - - -

x-transition 动画组件

基于 uni-app x 的现代化动画过渡组件,支持多种动画模式和完整的生命周期事件。

特性

  • 🎯 多种动画模式:支持淡入淡出、缩放、滑动、旋转等多种动画
  • 高性能:基于 CSS transform 和 transition 实现
  • 🎨 可定制:支持自定义动画时长、缓动函数、延迟等
  • 📱 跨平台:支持 Web、Android、iOS、HarmonyOS
  • 🔄 完整事件:提供完整的动画生命周期事件

支持的动画模式

模式 描述 示例
fade 淡入淡出 透明度变化
zoom 缩放 大小变化
fade-zoom 缩放淡入 缩放+透明度
fade-up 上滑淡入 向上滑动+透明度
fade-down 下滑淡入 向下滑动+透明度
fade-left 左滑淡入 向左滑动+透明度
fade-right 右滑淡入 向右滑动+透明度
slide-up 上滑进入 向上滑动
slide-down 下滑进入 向下滑动
slide-left 左滑进入 向左滑动
slide-right 右滑进入 向右滑动
rotate 旋转 180度旋转
flip 翻转 Y轴翻转
bounce 弹跳 缩放+透明度

属性

属性名 类型 默认值 说明
show Boolean false 是否展示组件
mode String 'fade' 动画模式
duration Number/String 300 动画时长(ms)
timingFunction String 'ease-out' 缓动函数
delay Number/String 0 动画延迟(ms)
property String 'all' 动画属性
transformOrigin String '50% 50%' 变换原点
customStyle Object {} 自定义样式

事件

事件名 说明 参数
before-enter 进入前触发 -
enter 进入中触发 -
after-enter 进入后触发 -
before-leave 离开前触发 -
leave 离开中触发 -
after-leave 离开后触发 -
click 点击触发 -

使用示例

基础用法

<template>
  <view>
    <button @click="toggle">切换动画</button>

    <x-transition :show="visible" mode="fade">
      <view class="box">淡入淡出动画</view>
    </x-transition>
  </view>
</template>

<script setup>
import { ref } from 'vue'

const visible = ref(false)

const toggle = () => {
  visible.value = !visible.value
}
</script>

自定义动画

<template>
  <x-transition 
    :show="visible" 
    mode="bounce"
    :duration="500"
    timing-function="cubic-bezier(0.68, -0.55, 0.265, 1.55)"
    @before-enter="onBeforeEnter"
    @after-enter="onAfterEnter"
  >
    <view class="box">弹跳动画</view>
  </x-transition>
</template>

<script setup>
const onBeforeEnter = () => {
  console.log('动画开始')
}

const onAfterEnter = () => {
  console.log('动画结束')
}
</script>

多种动画模式

<template>
  <view>
    <x-transition :show="visible" mode="fade-up">
      <view class="box">上滑淡入</view>
    </x-transition>

    <x-transition :show="visible" mode="zoom">
      <view class="box">缩放动画</view>
    </x-transition>

    <x-transition :show="visible" mode="rotate">
      <view class="box">旋转动画</view>
    </x-transition>
  </view>
</template>

缓动函数

支持所有 CSS transition-timing-function 的值:

  • ease - 默认,慢-快-慢
  • linear - 匀速
  • ease-in - 慢-快
  • ease-out - 快-慢
  • ease-in-out - 慢-快-慢
  • cubic-bezier(x1, y1, x2, y2) - 自定义贝塞尔曲线

注意事项

  1. 组件基于 CSS transform 和 transition 实现,确保目标平台支持
  2. 动画时长建议在 200-500ms 之间,过短或过长都会影响用户体验
  3. 在移动端使用时,建议使用 transform3d 来启用硬件加速
  4. 自定义样式会覆盖默认的动画样式,请谨慎使用

兼容性

平台 支持版本
Web 4.0+
Android 3.9+
iOS 4.11+
HarmonyOS 4.61+

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。