- 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是否与你的需求匹配。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
