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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue利用javascript钩子函数实现动画无效
    53
    0

    想封装一个简单的动画组件,用css实现了一遍,效果是可行的,如下:

    <template>
        <div>
            <transition name="bar">
                <slot></slot>
            </transition>
        </div>
    </template>
    
    <style lang="stylus" scoped>
    .bar-enter-active, .bar-leave-active{
        transition: all .3s;
    }
    
    .bar-leave-active{
        transform translateY(200px)
    }
    
    .bar-enter{
        transform translateY(200px)
    }
    </style>

    因为很多需要动态计算,所以想改为javascript 钩子函数来实现,但是发现怎么尝试都没有效果:

    <template>
        <div>
            <transition
                v-on:before-enter="beforeEnter"
                v-on:enter="enter"
                v-on:leave="leave"
            >
                <slot></slot>
            </transition>
        </div>
    </template>
    <script>
    export default {
        name: 'animation',
        methods: {
            beforeEnter: function (el) {
                el.style.transform = 'translate-y(200px)'
            },
            // 此回调函数是可选项的设置
            // 与 CSS 结合时使用
            enter: function (el, done) {
                el.style.transitionDuration = "3s"
                el.style.transitionProperty = "all"
                done()
            },
    
            // 此回调函数是可选项的设置
            // 与 CSS 结合时使用
            leave: function (el, done) {
                el.style.transform = 'translate-y(200px)'
                // el.style.transition = 'all 3s'
                el.style.transitionDuration  = "3s"
                el.style.transitionProperty = "all"
                done()
            },
        }
    }
    </script>

    问题出在哪儿呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 莪親媽. 普通会员 1楼

      在Vue中,可以使用自定义钩子函数来实现动画。然而,当使用JavaScript钩子函数时,动画效果可能会出现无效的情况。这可能是因为钩子函数的实现方式与动画库不兼容,或者是因为动画库自身的问题。

      如果你的动画库是基于JavaScript的,你可以尝试使用一些动画库的API来实现动画,而不是自定义钩子函数。例如,如果你使用的是Animate.css,你可以使用animate方法来创建动画,而不是使用自定义钩子函数。

      如果你使用的是基于HTML的动画库,你可以尝试使用一些HTML5的动画API来实现动画。例如,你可以使用requestAnimationFrame方法来创建动画,而不是使用自定义钩子函数。

      总之,当你在Vue中使用JavaScript钩子函数来实现动画时,需要注意动画库的兼容性和API是否与你的需求匹配。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部