@ray-js/smart-ui
Version:
轻量、可靠的智能小程序 UI 组件库
140 lines (112 loc) • 4.43 kB
Markdown
category: 展示
# Transition 动画
### 介绍
使元素从一种样式逐渐变化为另一种样式的效果。
### 引入
```jsx
import { Transition } from '@ray-js/smart-ui';
```
## 代码演示
### 基础用法
将元素包裹在 transition 组件内,在元素展示/隐藏时,会有相应的过渡动画。
```jsx
import { Button, Transition } from '@ray-js/smart-ui';
import React from 'react';
export default function Demo() {
const [show, setShow] = React.useState(true);
return (
<>
<Button onClick={() => setShow(!show)}>
切换展示
</Button>
<Transition show={show} customClass="block">
内容
</Transition>
</>
);
}
```
### 动画类型
transition 组件内置了多种动画,可以通过`name`字段指定动画类型。
```jsx
import { Button, Transition } from '@ray-js/smart-ui';
import React from 'react';
export default function Demo() {
const [show, setShow] = React.useState(true);
return (
<>
<Button onClick={() => setShow(!show)}>
切换展示
</Button>
<Transition show={show} name="fade-up">
内容
</Transition>
</>
);
}
```
### 高级用法
可以通过外部样式类自定义过渡效果,还可以定制进入和移出的持续时间。
```jsx
<Transition
show={show}
name=""
duration={{ enter: 300, leave: 1000 }}
enterClass="smart-enter-class"
enterActiveClass="smart-enter-active-class"
leaveActiveClass="smart-leave-active-class"
leaveToClass="smart-leave-to-class"
/>
```
```css
.smart-enter-active-class,
.smart-leave-active-class {
transition-property: background-color, transform;
}
.smart-enter-class,
.smart-leave-to-class {
background-color: red;
transform: rotate(-360deg) translate3d(-100%, -100%, 0);
}
```
## API
### Props
| 参数 | 说明 | 类型 | 默认值 |
| ------------ | -------------------- | ------------------ | ------ |
| customStyle | 自定义样式 | _React.CSSProperties_ | - |
| duration | 动画时长,单位为毫秒 | _number \| object_ | `300` |
| name | 动画类型 | _string_ | `fade` |
| show | 是否展示组件 | _boolean_ | `true` |
### Events
| 事件名 | 说明 | 参数 |
| ----------------- | ---------- | ---- |
| onAfterEnter | 进入后触发 | - |
| onAfterLeave | 离开后触发 | - |
| onBeforeEnter | 进入前触发 | - |
| onBeforeLeave | 离开前触发 | - |
| onEnter | 进入中触发 | - |
| onLeave | 离开中触发 | - |
### 外部样式类
| 类名 | 说明 |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| customClass | 根节点样式类 |
| enterActiveClass | 定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。 |
| enterClass | 定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。 |
| enterToClass | 定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 enter-class 被移除),在过渡/动画完成之后移除。 |
| leaveActiveClass | 定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。 |
| leaveClass | 定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。 |
| leaveToClass | 定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 leave-class 被删除),在过渡/动画完成之后移除。 |
### 动画类型
| 名称 | 说明 |
| ----------- | -------- |
| fade | 淡入 |
| fadeDown | 下滑淡入 |
| fadeLeft | 左滑淡入 |
| fadeRight | 右滑淡入 |
| fadeUp | 上滑淡入 |
| slideDown | 下滑进入 |
| slideLeft | 左滑进入 |
| slideRight | 右滑进入 |
| slideUp | 上滑进入 |