vivo-ui
Version:
vivo ui component lib for vue
95 lines (75 loc) • 2.46 kB
Markdown
# cutover 元素切换动画
> cutover为元素切换过渡动画组件,可支持多种效果,且可自定义过渡动效。**(v0.0.13引入)**
[demo](demo/components/cutover.html ':ignore')
## 使用方法
```
<!--单个元素切换-->
<cutover type="cover">
<template slot-scope="slot">
<div v-show="show" :style="slot.styleObj">元素内容</div>
</template>
</cutover>
<!--多个元素切换-->
<cutover type="cover">
<template slot-scope="slot">
<div v-if="value===1" :style="slot.styleObj">元素内容</div>
<div v-else-if="value===2" :style="slot.styleObj">元素内容</div>
<div v-else :style="slot.styleObj">元素内容</div>
</template>
</cutover>
<!--页面切换-->
<cutover type="my">
<template slot-scope="slot">
<router-view :style="slot.styleObj"></router-view>
</template>
</cutover>
```
```
import {Cutover} from 'vivo-ui';
export default {
components: {
Cutover
}
};
```
```
/*自定义页面转场效果*/
.vui-cutover .vui-cutover-my-enter-active,
.vui-cutover .vui-cutover-my-leave-active {
transition-property: opacity, transform;
}
.vui-cutover:not(.vui-cutover-back) .vui-cutover-my-enter {
transform: translate3d(100%, 0, 0);
}
.vui-cutover:not(.vui-cutover-back) .vui-cutover-my-leave-active {
opacity: .5;
}
/*checkBack为true时,返回时会在组件根元素应用.vui-cutover-back样式*/
.vui-cutover-back .vui-cutover-my-enter {
opacity: .5;
}
.vui-cutover-back .vui-cutover-my-leave-active {
position: relative;
z-index: 1;
transform: translate3d(100%, 0, 0);
}
```
## 属性
名称|类型|必填|默认值|描述
:-:|:-:|:-:|:-:|:-:
type|`String`|`N`|`fade`|过渡动画类型,暂只支持fade、cover两种
duration|`Number`|`N`|`400`|过渡时间,单位ms,`0`表示无过渡效果
checkBack|`Boolean`|`N`|`false`|**当作页面转场动画时,返回时动效是否相反,且此时要配合vue-router使用,其它场景使用时不要设置该属性**
appear|`Boolean`|`N`|`false`|初始渲染是否有过渡效果
mode|`String`|`N`|`-`|控制元素切换时进入、离开的顺序,有效的模式有`out-in`和`in-out`,默认同时生效
## 插槽
名称|必填|说明
:-:|:-:|:-:
默认|`Y`|要切换的元素
## 注意
**过渡的元素上必须要应用插槽的样式,否则过渡无法生效,如下**
```
<template slot-scope="slot">
<div v-show="show" :style="slot.styleObj">元素内容</div>
</template>
```