账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue-transtion 过渡动画不走钩子
    • 2020-01-01 00:00
    • 11
    46
    0

    想要实现这从左往右出现到屏幕的过渡效果,实现不了,且不走transtion 钩子函数,不知道怎么修改。
    代码如下: 手动粘贴 未整理格式。

    首页:

    <template>
    <div class="hello">
        <van-cell title="单元格" is-link to="/shopCart" />
        <van-button  type="primary" @click="jump">跳转</van-button>
     </div>
    </template>
    
    <script>
    export default {
    methods:{jump () {
          this.$router.push('/shopCart')
        }}}
       </script> 

    shopCart: 其中beforeEnter enter 都不走 但是按照官网的方式是好使的

    <template>
    <transition
        name="slide"
        v-on:before-enter="beforeEnter"
        v-on:enter="enter"
      >
     1231231231
      </transition>
    </template>
    <script>
    export default {
    methods:(){
     beforeEnter: function (el) {
          console.log(el)
        },
        enter () {
          alert(1)
        }
        }
        }
        </script>
    <style>
    .slide-enter-active,
    .slide-leave-active {
      transition: all .5s;
    }
    
    .slide-enter,
    .slide-leave-to {
      transform: translate3d(100%, 0, 0);
    }
    
    </style>
    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 隔壁小姨子 普通会员 1楼

      Vue Transition 有两种动画模式:动画过渡和无声过渡。动画过渡可以通过钩子函数触发过渡动画,无声过渡则不会触发任何动画。如果你尝试在 Vue Transition 中使用钩子函数,并且希望它触发过渡动画,但是它没有按预期工作,可能是因为你没有正确地使用钩子函数。 要确保钩子函数在适当的时候被调用,你可以在钩子函数中添加 transitionend 事件监听器。这个事件监听器会在过渡动画完成后被触发。 例如,假设你有一个 transitionEnd 事件监听器,你可以在你的过渡函数中添加如下代码: javascript export default { transitionEnd: function() { console.log('过渡动画完成'); } }

      在这个例子中,当过渡动画完成时,transitionEnd 事件监听器会被触发,并且会在控制台打印出 "过渡动画完成"。 如果你仍然遇到问题,可能是因为你的钩子函数与过渡动画的触发顺序不同。例如,你可能在 transitionend 事件之前触发了过渡动画。在这种情况下,你可以使用 setTimeoutrequestAnimationFrame 等方法来确保你的钩子函数在正确的时间被调用。 javascript export default { transitionEnd: function() { console.log('过渡动画完成'); setTimeout(() => { console.log('过渡动画完成'); }, 1000); } }

      在这个例子中,transitionEnd 事件监听器在 setTimeout 事件之后被触发,从而确保它在正确的时间被调用。

    更多回答
    扫一扫访问手机版