加入购物车的小球动画(vue)

template

        <transition
            @before-enter="beforeEnter"
            @enter="enter"
            @after-enter="afterEnter">
            <div v-show="balls" class="ball" ref="ball"></div>
        </transition>

css

    .ball{
        width: 10px;
        height: 10px;
        background: red;
        border-radius: 50%;
        z-index: 100;
        position: absolute;
        left: 293px;
        top: 210px;
    }

vue

data() {
			return {
				 balls: false, // 控制加入购物车时的小球
			}
},
methods: {
			beforeEnter(el){
                el.style.transform = 'translate(0, 0)'
            },
            enter(el, done){
                el.offsetWidth
                // el.style.transform = 'translate(-200px, 420px)'
                // 小球位置的 top 和 left
                var ballTop = this.$refs.ball.getBoundingClientRect().top
                var ballLeft = this.$refs.ball.getBoundingClientRect().left
                // 小球需要到达的位置的 top 和 left
                var comTop = this.$refs.ok_pay.getBoundingClientRect().top
                var comLeft = this.$refs.ok_pay.getBoundingClientRect().left
                // 小球需要移动的宽高
                var transTop = comTop - ballTop
                var transLeft = ballLeft - comLeft
                el.style.transform = 'translate(-'+transLeft+'px, '+transTop+'px)'
                el.style.transition = 'all 1s cubic-bezier(.4,-0.3,1,.68)';
                done()
            },
            afterEnter(el){
                this.balls = !this.balls
            }
}

使用钩子函数来定义动画,首先将小球隐藏,然后在一个合适的时机让小球显示出来,小球显示出来之后就会进行动画效果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值