请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

3回答

慕先生3442787 2018-11-26 16:25:52

控制显示隐藏的方法是“v-show”,‘v-show’隐藏的原理是将样式diaplay设置为none,此时元素的opacity还是1,所以写一个leave把opacity设为0可解决。或者使用‘v-if’,v-if每次切换都会重新渲染。

1 回复 有任何疑惑可以回复我~
  • 所以写一个leave把opacity设为0可解决,你能把你说的解决方式用代码实现一下吗?我试了你说的方法,没有任何意义。除非执行enter的逆过程。主要想理解原理~麻烦大佬告知一二...
    回复 有任何疑惑可以回复我~ 2019-01-21 16:19:39
weixin_慕UI5568240 2019-09-18 15:35:37

这样解释不太对呀,opacity即使是1,在下次的before-enter中还是会把opacity改为0的呀。所以应该不是这个的问题

0 回复 有任何疑惑可以回复我~
提问者 Aaron叶 2018-10-30 02:09:00
<!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>

这是我写的代码

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信