Vue内置组件transition的灵活运用
前言:在做语音APP的H5开发的时候,遇到很多动效还原的场景,而且对用户体验感有较强的要求。某些场景经常会有用到transition这个属性。
transition
Props:
name
- string,用于自动生成 CSS 过渡类名。例如:name: 'fade'
将自动拓展为.fade-enter
,.fade-enter-active
等。默认类名为"v"
appear
- boolean,是否在初始渲染时使用过渡。默认为false
。css
- boolean,是否使用 CSS 过渡类。默认为true
。如果设置为false
,将只通过组件事件触发注册的 JavaScript 钩子。type
- string,指定过渡事件类型,侦听过渡何时结束。有效值为"transition"
和"animation"
。默认 Vue.js 将自动检测出持续时间长的为过渡事件类型。mode
- string,控制离开/进入过渡的时间序列。有效的模式有"out-in"
和"in-out"
;默认同时进行。duration
- number | {enter
: number,leave
: number } 指定过渡的持续时间。默认情况下,Vue 会等待过渡所在根元素的第一个transitionend
或animationend
事件。enter-class
- stringleave-class
- stringappear-class
- stringenter-to-class
- stringleave-to-class
- stringappear-to-class
- stringenter-active-class
- stringleave-active-class
- stringappear-active-class
- string
事件:
before-enter
before-leave
before-appear
enter
leave
appear
after-enter
after-leave
after-appear
enter-cancelled
leave-cancelled
(v-show
only)appear-cancelled
运用
- 可以通过css来自定义transition达到的效果
- 如果想在transition的过渡效果完成之后,触发某个函数,可以用
after-leave
来实现,在进入过渡之后完成后触发的话就用after-enter
。
模式
in-out
:新元素先进行过渡,完成之后 当前元素过渡离开。out-in
:当前元素先进行过渡,完成之后 新元素过渡进入。
- 示例:
1 | <!-- 事件钩子 --> |
1 | function EnterComplete(){ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AliveSeven's Blog!
评论