vue中动画函数钩子js动画
2018-11-21 11:09
561 查看
1. 动画开始:@before-enter @before-leave
动画过程: @enter @leave 在这个过程中有done方法,表示动画结束,done方法执行时,就会触发动画结束函数
动画结束:@after-enter @after-leave
注意:动画变化,不是过渡。
[code] <div id="demo"> <button @click="show = !show">click me</button> <transition name="fade" @before-enter="handleBeforeEnter" @enter="handleEnter" @after-enter="handleAfterEnter"> <div v-if="show" class="de">sfsf</div> </transition> </div> <script> new Vue({ el: '#demo', data: { show: true }, methods: { handleBeforeEnter(dom) { dom.style.color = 'red' }, handleEnter (dom, done) { setTimeout( () => { dom.style.color = 'green' }, 3000) setTimeout( () => { done() }, 6000) }, handleAfterEnter (dom) { dom.style.color = 'black' } } }) </script>
2. 使用第三方js动画库 velocit.js
在过渡过程@enter 和 @leave两个函数中,要按第三方库的写法来写(velocity.js)
[code] <div id="demo"> <button @click="show = !show">click me</button> <transition name="fade" @before-enter="handleBeforeEnter" @enter="handleEnter" @after-enter="handleAfterEnter"> <div v-if="show" class="de">sfsf</div> </transition> </div> <script> new Vue({ el: '#demo', data: { show: true }, methods: { handleBeforeEnter(dom) { dom.style.opacity = 0 }, handleEnter (dom, done) { Velocity(dom, {opacity: 1}, {duration: 3000, complete: done}) }, handleAfterEnter (dom) { console.log("complete animation") } } }) </script>
结果:opacity的设置时过渡,而对color颜色的设置,不是过渡效果
阅读更多相关文章推荐
- 【15】vue.js — 动画
- Vue.js 系列教程 5:动画
- 新写了几个js的动画效果函数
- vue-router钩子beforeRouteEnter函数获取到this实例
- vue生命周期中,钩子函数执行顺序
- vue.js过渡效果之--javascript钩子
- Vue.js动画在项目使用的两个示例
- vue.js中生命周期与相关函数的使用总结
- 用js模拟JQuery的show与hide动画函数代码
- 一个通用的js动画函数
- Vuejs第七篇之Vuejs过渡动画案例全面解析
- JS封装缓动动画函数
- vue.js过渡效果之--javascript钩子
- vue用js部分控制动画实现
- Vue.js学习 Item10 – 过渡与动画
- Vuejs——(7)过渡(动画)
- Vue.js 系列教程 3:Vue-cli,生命周期钩子
- JS原生动画函数封装