vue的transition demo(配合create-keyframe-animation使用)

< template >
< div >
< div class= "click" @click=" onClick" >click </ div >
< transition
    @enter=" onEnter"
    @after-enter=" onAfter"
    @leave=" onLeave"
    @after-leave=" onAfterLeave"
  >
< div class= "box" ref= "box" v-show=" flag" ></ div >
</ transition >
</ div >
</ template >

< script >
import animations from 'create-keyframe-animation'

export default {
data() {
return {
flag: false,
}
},
methods: {
onClick() {
this. flag = ! this. flag
},
onEnter( e, done) {
animations. registerAnimation({
name: 'move',
animation: {
0 : {
transform: 'translateX(0px)'
},
50 : {
background: 'red'
},
100 : {
transform: 'translateX(200px)'
}
},
presets: {
duration: 1000,
easing: 'linear'
}
})
animations. runAnimation( this. $refs. box, {
name: 'move'
}, done)
},
onAfter() {
animations. unregisterAnimation( 'move')
this. $refs. box. style. animation= ''
},
onLeave( e, done) {
animations. registerAnimation({
name: 'move',
animation: {
0 : {
transform: 'translateX(200px)'
},
50 : {
background: 'red'
},
100 : {
transform: 'translateX(0px)'
}
},
presets: {
duration: 1000,
easing: 'linear'
},
})
animations. runAnimation( this. $refs. box, {
name: 'move'
}, done)
},
onAfterLeave() {
animations. unregisterAnimation( 'move')
this. $refs. box. style. animation= ''
}
}
}
</ script >

< style lang= "stylus" scoped >
.box
width 100px
height 100px
background black
transform translateX( 200px)
</ style >
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值