5-4小节中,用了Velocity后,第二次再点击按钮,hello world回不来是怎么回事呀
来源:5-4 Vue中的 Js 动画与 Velocity.js 的结合
Aaron叶
2018-10-30
写回答
3回答
-
慕先生3442787
2018-11-26
控制显示隐藏的方法是“v-show”,‘v-show’隐藏的原理是将样式diaplay设置为none,此时元素的opacity还是1,所以写一个leave把opacity设为0可解决。或者使用‘v-if’,v-if每次切换都会重新渲染。
112019-01-21 -
weixin_慕UI5568240
2019-09-18
这样解释不太对呀,opacity即使是1,在下次的before-enter中还是会把opacity改为0的呀。所以应该不是这个的问题
00 -
Aaron叶
提问者
2018-10-30
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="vue.j s"></script> <script src="Velocity.js"></script></head><body> <div id="app"> <transition @before-enter="handBeforeEnter" @enter="handEnter" @after-enter="handAfterEnter" @before-leave="handBeforeLeave" @leave="handLeave" @after-leave="handAfterLeave"> <div v-show="show">hello world</div> </transition> <button @click="handldClick">点击</button> </div> <script> var vm = new Vue({ el : '#app', data : { show: true }, methods : { handldClick : function () { this.show = !this.show }, handBeforeEnter : function (el) { el.style.opacity = 0 }, handEnter : function (el, done) { Velocity(el, { opacity : 1 }, { duration :1000, complete:done }) }, handAfterEnter : function (el) { console.log('动画结束') } } }) </script></body></html>
这是我写的代码
012019-01-21
相似问题