Transition 动画组件
该组件用于组件的动画过渡效果。
温馨提示
本项目参考了 uView-Plus 开源项目的组件开发方式,基于 Vue 3 和 TypeScript 实现了自定义组件。
感谢 uView-Plus 开源项目及其团队成员的贡献,他们的组件开发思路为本项目提供了宝贵地参考。如果需要了解更多组件开发细节,可以参考uView-Plus的 transition组件 的代码实现。
📌平台差异说明
| APP(vue) | H5 | 微信小程序 | 支付宝小程序 |
|---|---|---|---|
| ✔ | ✔ | ✔ | ✔ |
🏯基本使用示例
html
<!-- 全局使用 -->
<hy-transition :show="show">
<view class="transition">我是内容</view>
</hy-transition>
<!-- 单个组件引入 -->
<HyTransition :show="show">
<view class="transition">我是内容</view>
</HyTransition>ts
import { HyTransition } from "hy-app";
import { ref } from 'vue';
const show = ref(true);动画模式
通过设置
mode
fade淡入fade-up上滑淡入fade-down下滑淡入fade-left左滑淡入fade-right右滑淡入slide-up上滑进入slide-down下滑进入slide-left左滑进入slide-right右滑进入zoom-in缩放zoom-out缩放
html
<template>
<hy-transition :show="show" mode="zoom-in"></hy-transition>
</template>动画过渡
通过设置
timingFunction
linear:过渡效果以相同的速度从开始到结束,相当于 cubic-bezier(0,0,1,1)。ease:过渡效果以慢速开始,然后加速,最后再慢速结束,是默认值,相当于 cubic-bezier(0.25,0.1,0.25,1)。ease-in:过渡效果以慢速开始,然后逐渐加速,相当于 cubic-bezier(0.42,0,1,1)。ease-out:过渡效果以快速开始,然后逐渐减速,相当于 cubic-bezier(0,0,0.58,1)。ease-in-out:过渡效果以慢速开始,加速到中间,然后减速结束,相当于 cubic-bezier(0.42,0,0.58,1)。
html
<template>
<hy-transition :show="show" timingFunction="linear"></hy-transition>
</template>API
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| show | 是否展示组件 | boolean | false |
| mode | 使用的动画模式,见上方说明 | string | fade |
| duration | 动画的执行时间,单位ms | number | 300 |
| timingFunction | 使用的动画过渡函数,见上方说明 | string | ease-out |
| customStyle | 定义需要用到的外部样式 | CSSProperties | - |
Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| beforeEnter | 进入前触发 | - |
| enter | 进入中触发 | - |
| afterEnter | 进入后触发 | - |
| beforeLeave | 离开前触发 | - |
| leave | 离开中触发 | - |
| afterLeave | 离开后触发 | - |
Slots
| 插槽名 | 说明 | 接收值 |
|---|---|---|
| default | - | - |

