更新记录
                                                                                                    
                                                    
                                                        1.0.0(2025-11-03)
                                                                                                                    
                                                                下载此版本
                                                            
                                                        
                                                    
                                                    更新日志
[1.0.0] - 2025-11-03
                                                                                                                                                
                                            
                                                                                                                                                        平台兼容性
                                                                                                                                                                                                                                                                                                                                uni-app(3.6.12)
                                                                                                                                                                                                                                    
| Vue2 | 
Vue2插件版本 | 
Vue3 | 
Vue2插件版本 | 
Chrome | 
Chrome插件版本 | 
Safari | 
Safari插件版本 | 
app-vue | 
app-vue插件版本 | 
app-nvue | 
app-nvue插件版本 | 
Android | 
Android插件版本 | 
iOS | 
iOS插件版本 | 
鸿蒙 | 
鸿蒙插件版本 | 
| √ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
5.0 | 
1.0.0 | 
12 | 
1.0.0 | 
√ | 
1.0.0 | 
                                                                                                                                                            
| 微信小程序 | 
微信小程序插件版本 | 
支付宝小程序 | 
支付宝小程序插件版本 | 
抖音小程序 | 
抖音小程序插件版本 | 
百度小程序 | 
百度小程序插件版本 | 
快手小程序 | 
快手小程序插件版本 | 
京东小程序 | 
京东小程序插件版本 | 
鸿蒙元服务 | 
鸿蒙元服务插件版本 | 
QQ小程序 | 
QQ小程序插件版本 | 
飞书小程序 | 
飞书小程序插件版本 | 
快应用-华为 | 
快应用-华为插件版本 | 
快应用-联盟 | 
快应用-联盟插件版本 | 
| √ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                uni-app x(3.6.12)
                                                                                                                                                                                                                                    
| Chrome | 
Chrome插件版本 | 
Safari | 
Safari插件版本 | 
Android | 
Android插件版本 | 
iOS | 
iOS插件版本 | 
鸿蒙 | 
鸿蒙插件版本 | 
微信小程序 | 
微信小程序插件版本 | 
| √ | 
1.0.0 | 
√ | 
1.0.0 | 
5.0 | 
1.0.0 | 
12 | 
1.0.0 | 
√ | 
1.0.0 | 
√ | 
1.0.0 | 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                其他
                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                            hy-animation-plus
  增强型动画与过渡效果组件库
  为 uni-app 应用提供丰富、流畅、易用的动画解决方案
📖 简介
hy-animation-plus 是一个功能强大的动画组件库,专为 uni-app 开发者打造。提供多种预设动画和自定义动画能力,支持链式动画、交互动画、过渡动画等,可以轻松为您的应用添加生动的动画效果。
✨ 核心特性
- 🎭 多种预设动画:淡入淡出、滑动、缩放、旋转、弹跳等 50+ 预设动画
 
- 🔗 链式动画:支持多个动画按顺序或并行执行
 
- 🖱️ 交互动画:支持点击、长按、滑动等交互触发动画
 
- ⏱️ 过渡动画:页面切换和组件状态变化的过渡效果
 
- 🎨 自定义动画:支持自定义关键帧动画
 
- 📱 性能优化:使用 CSS3 动画和硬件加速,保证流畅性
 
- 🔄 条件渲染动画:为进入/退出的元素添加过渡效果
 
- 📋 列表过渡:为列表项的添加、删除、移动提供动画
 
- 🎯 手势识别:内置手势识别器,支持滑动、捏合等手势
 
- 🌐 全平台支持:支持 H5、App、小程序等全平台
 
📦 安装
使用 uni_modules 安装(推荐)
- 在 HBuilderX 中右键项目根目录
 
- 选择 "从插件市场导入插件"
 
- 搜索 "hy-animation-plus"
 
- 点击导入
 
手动安装
将 hy-animation-plus 文件夹复制到项目的 uni_modules 目录下。
🚀 快速开始
基础用法
1. 使用预设动画
<template>
  <hy-animation-plus animation="fadeIn" :config="{ duration: 500 }">
    <view class="content">淡入动画</view>
  </hy-animation-plus>
</template>
<script>
export default {
  data() {
    return {};
  }
};
</script>
2. 交互触发动画
<template>
  <hy-animation-plus 
    animation="bounce" 
    trigger="click"
    :auto-play="false"
  >
    <view class="button">点击我</view>
  </hy-animation-plus>
</template>
3. 链式动画
<template>
  <hy-animation-plus :chain="animationChain">
    <view class="content">链式动画</view>
  </hy-animation-plus>
</template>
<script>
export default {
  data() {
    return {
      animationChain: [
        { animation: 'fadeIn', config: { duration: 300 } },
        { animation: 'bounce', config: { duration: 500 } },
        { animation: 'pulse', config: { duration: 300 } }
      ]
    };
  }
};
</script>
4. 条件渲染动画
<template>
  <view>
    <button @click="show = !show">切换显示</button>
    <hy-animate-presence 
      :show="show"
      enter-animation="slideInRight"
      exit-animation="slideOutLeft"
    >
      <view class="content">条件渲染的内容</view>
    </hy-animate-presence>
  </view>
</template>
<script>
export default {
  data() {
    return {
      show: true
    };
  }
};
</script>
5. 列表过渡动画
<template>
  <hy-transition-group 
    :items="list"
    item-key="id"
    enter-animation="slideInUp"
    leave-animation="slideOutDown"
    :stagger="50"
  >
    <template v-slot="{ item, index }">
      <view class="list-item">{{ item.name }}</view>
    </template>
  </hy-transition-group>
</template>
<script>
export default {
  data() {
    return {
      list: [
        { id: 1, name: '项目 1' },
        { id: 2, name: '项目 2' },
        { id: 3, name: '项目 3' }
      ]
    };
  }
};
</script>
📚 组件文档
HyAnimationPlus 主动画组件
为元素添加动画效果的主要组件。
Props
| 参数 | 
类型 | 
默认值 | 
说明 | 
| animation | 
String/Object | 
null | 
预设动画名称或自定义动画对象 | 
| chain | 
Array | 
[] | 
链式动画数组 | 
| trigger | 
String | 
'auto' | 
触发方式:'auto'、'click'、'longpress'、'hover' | 
| autoPlay | 
Boolean | 
true | 
是否自动播放 | 
| config | 
Object | 
{} | 
动画配置(duration、delay、easing 等) | 
Events
| 事件名 | 
说明 | 
回调参数 | 
| animation-end | 
动画结束时触发 | 
- | 
| click | 
点击时触发 | 
- | 
| longpress | 
长按时触发 | 
- | 
Methods
| 方法名 | 
说明 | 
参数 | 
| start() | 
开始播放动画 | 
- | 
| pause() | 
暂停动画 | 
- | 
| resume() | 
恢复动画 | 
- | 
| stop() | 
停止动画 | 
- | 
HyAnimatePresence 条件渲染动画组件
为条件渲染的元素添加进入和退出动画。
Props
| 参数 | 
类型 | 
默认值 | 
说明 | 
| show | 
Boolean | 
true | 
是否显示 | 
| enterAnimation | 
String/Object | 
'fadeIn' | 
进入动画 | 
| exitAnimation | 
String/Object | 
'fadeOut' | 
退出动画 | 
| duration | 
Number | 
300 | 
动画持续时间(毫秒) | 
| delay | 
Number | 
0 | 
延迟时间(毫秒) | 
| easing | 
String | 
'ease-in-out' | 
缓动函数 | 
| appear | 
Boolean | 
false | 
是否在初始渲染时播放动画 | 
Events
| 事件名 | 
说明 | 
回调参数 | 
| before-enter | 
进入前触发 | 
- | 
| enter | 
进入时触发 | 
- | 
| after-enter | 
进入后触发 | 
- | 
| before-exit | 
退出前触发 | 
- | 
| exit | 
退出时触发 | 
- | 
| after-exit | 
退出后触发 | 
- | 
HyTransitionGroup 列表过渡动画组件
为列表项的添加、删除、移动提供过渡动画。
Props
| 参数 | 
类型 | 
默认值 | 
说明 | 
| items | 
Array | 
[] | 
列表数据 | 
| itemKey | 
String | 
'id' | 
唯一标识字段名 | 
| appear | 
Boolean | 
false | 
是否在初始渲染时播放动画 | 
| appearAnimation | 
String/Object | 
'fadeIn' | 
出现动画 | 
| enterAnimation | 
String/Object | 
'fadeIn' | 
进入动画 | 
| leaveAnimation | 
String/Object | 
'fadeOut' | 
离开动画 | 
| moveAnimation | 
Boolean | 
true | 
是否启用移动动画 | 
| duration | 
Number | 
300 | 
动画持续时间(毫秒) | 
| stagger | 
Number | 
0 | 
交错延迟(毫秒) | 
| easing | 
String | 
'ease-in-out' | 
缓动函数 | 
Events
| 事件名 | 
说明 | 
回调参数 | 
| enter | 
项进入时触发 | 
item | 
| after-enter | 
项进入后触发 | 
item | 
| leave | 
项离开时触发 | 
item | 
| after-leave | 
项离开后触发 | 
item | 
🎭 预设动画列表
淡入淡出动画
滑动动画
slideInLeft - 从左滑入 
slideInRight - 从右滑入 
slideInUp - 从下滑入 
slideInDown - 从上滑入 
slideOutLeft - 向左滑出 
slideOutRight - 向右滑出 
slideOutUp - 向上滑出 
slideOutDown - 向下滑出 
缩放动画
zoomIn - 放大进入 
zoomOut - 缩小退出 
zoomInBounce - 弹跳放大进入 
zoomOutBounce - 弹跳缩小退出 
旋转动画
rotateIn - 旋转进入 
rotateOut - 旋转退出 
rotateInDownLeft - 左下旋转进入 
rotateInDownRight - 右下旋转进入 
rotateInUpLeft - 左上旋转进入 
rotateInUpRight - 右上旋转进入 
翻转动画
flipInX - X轴翻转进入 
flipInY - Y轴翻转进入 
flipOutX - X轴翻转退出 
flipOutY - Y轴翻转退出 
弹跳动画
bounceIn - 弹跳进入 
bounceOut - 弹跳退出 
bounce - 弹跳 
注意力吸引动画
shake - 摇晃 
swing - 摆动 
rubberBand - 橡皮筋 
pulse - 脉冲 
heartBeat - 心跳 
flash - 闪烁 
jello - 果冻 
headShake - 摇头 
光速动画
lightSpeedInRight - 光速从右进入 
lightSpeedInLeft - 光速从左进入 
lightSpeedOutRight - 光速向右退出 
lightSpeedOutLeft - 光速向左退出 
滚动动画
rollIn - 滚动进入 
rollOut - 滚动退出 
后退动画
backInDown - 后退从上进入 
backInUp - 后退从下进入 
backInLeft - 后退从左进入 
backInRight - 后退从右进入 
backOutDown - 后退向下退出 
backOutUp - 后退向上退出 
backOutLeft - 后退向左退出 
backOutRight - 后退向右退出 
💡 进阶用法
使用 JS SDK
import { 
  createAnimation, 
  playAnimation, 
  playChainAnimation,
  getPresetAnimationNames 
} from '@/uni_modules/hy-animation-plus/js_sdk/index.js';
export default {
  methods: {
    // 创建动画实例
    startAnimation() {
      const element = this.$refs.myElement;
      const engine = createAnimation(element);
      engine.playPresetAnimation('bounce', { duration: 500 });
    },
    // 播放动画的便捷方法
    quickPlay() {
      const element = this.$refs.myElement;
      playAnimation(element, 'fadeIn', { duration: 300 });
    },
    // 播放链式动画
    async chainPlay() {
      const element = this.$refs.myElement;
      await playChainAnimation(element, [
        { animation: 'fadeIn' },
        { animation: 'bounce' },
        { animation: 'pulse' }
      ]);
      console.log('链式动画完成');
    },
    // 获取所有预设动画
    getAllAnimations() {
      const names = getPresetAnimationNames();
      console.log('所有预设动画:', names);
    }
  }
};
自定义动画
<template>
  <hy-animation-plus :animation="customAnimation">
    <view class="content">自定义动画</view>
  </hy-animation-plus>
</template>
<script>
export default {
  data() {
    return {
      customAnimation: {
        keyframes: [
          { transform: 'translateX(0) scale(1)', opacity: 0 },
          { transform: 'translateX(50px) scale(1.2)', opacity: 1 },
          { transform: 'translateX(0) scale(1)', opacity: 1 }
        ],
        config: {
          duration: 1000,
          easing: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',
          iterationCount: 1
        }
      }
    };
  }
};
</script>
手势识别
import { createGestureRecognizer } from '@/uni_modules/hy-animation-plus/js_sdk/index.js';
export default {
  mounted() {
    const element = this.$refs.gestureElement;
    const recognizer = createGestureRecognizer(element, {
      swipeThreshold: 50,
      swipeTimeout: 300
    });
    recognizer.on('swipeleft', (e) => {
      console.log('向左滑动');
    });
    recognizer.on('swiperight', (e) => {
      console.log('向右滑动');
    });
  }
};
🎨 动画配置选项
通用配置
{
  duration: 1000,        // 动画持续时间(毫秒)
  delay: 0,              // 延迟时间(毫秒)
  easing: 'ease-in-out', // 缓动函数
  iterationCount: 1,     // 迭代次数(1 或 'infinite')
  direction: 'normal',   // 方向:'normal'、'reverse'、'alternate'、'alternate-reverse'
  fillMode: 'both'       // 填充模式:'none'、'forwards'、'backwards'、'both'
}
缓动函数
支持以下缓动函数:
- 标准:
linear、ease、ease-in、ease-out、ease-in-out 
- 二次方:
easeInQuad、easeOutQuad、easeInOutQuad 
- 三次方:
easeInCubic、easeOutCubic、easeInOutCubic 
- 四次方:
easeInQuart、easeOutQuart、easeInOutQuart 
- 五次方:
easeInQuint、easeOutQuint、easeInOutQuint 
- 指数:
easeInExpo、easeOutExpo、easeInOutExpo 
- 圆形:
easeInCirc、easeOutCirc、easeInOutCirc 
- 回弹:
easeInBack、easeOutBack、easeInOutBack 
📝 注意事项
- 平台差异:nvue 页面部分动画效果与 vue 页面略有差异,建议在目标平台测试
 
- 性能考虑:避免同时播放大量动画,可能影响性能
 
- 动画叠加:多个动画同时作用于同一元素时,后者会覆盖前者
 
- 硬件加速:使用 
transform 和 opacity 属性可获得更好的性能 
- 条件编译:部分功能在小程序中可能受限,建议使用条件编译