Vue实现简单购物车小球动画效果

Vue实现简单购物车小球动画效果在这里插入图片描述

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <script src="./js/vue.js" type="text/javascript" charset="utf-8"></script>
 </head>
 <style type="text/css">
  #ball{
   width: 0.9375rem;
   height: 15px;
   background-color: red;
   border-radius: 50%;
  }
 </style>
 <body>
  <div id="app">
   <input type="button" name="" id="" value="加入购物车" @click="flag=!flag"/>
   <!-- 使用transition把元素小球包裹起来 -->
  <transition 
  @before-enter="beforeEnter" 
  @enter="Enter" 
  @after-enter="afterEnter">
   <div id="ball" v-if="flag">
    
   </div>
   </transition>
  </div>
 </body>
 <script type="text/javascript">
  var vm = new Vue({
   el:'#app',
   data:{
    flag:false
   },
   methods:{
    //el:动画钩子函数的第一个参数,表示要执行动画的DOM元素,是原生的JS对象。可以认为,el是通过document.getElemtById("")方式获取的DOM对象。
    beforeEnter(el){
     //beforeEnter:表示动画进入前,动画尚未开始,可以在此设置动画开始前的起始样式。
     //设置起始位置
     el.style.transform="translate(0,0)"
    },
    Enter(el,done){
     //el.offsetWidth在这并没有什么作用,但是没有也不行,会没有动画效果。可理解为强制动画刷新
     el.offsetWidth
     el.style.transform="translate(150px,450px)"
     el.style.transition="all 1s ease"
     //done是必须的,起始就是afterEnter这个函数,也就是说,done是afterEnter的引用。
     //done()如果没有,动画效果不会到达位置后立即消失,而是要过几秒。视觉效果不好。
     done()
    },
    afterEnter(el){
     this.flag=!this.flag
    }
   }
  })
 </script>
</html>

总结:
购物车的Vue的动画实现,不使用 6 个 class 来切换,因为6个class是实现整场的效果,而购物车小球是半场的。所以使用Vue的JavaScript 钩子实现,只写出现半场效果即可

6个class:

JavaScript 钩子

<transition
  v-on:before-enter="beforeEnter"
  v-on:enter="enter"
  v-on:after-enter="afterEnter"
  v-on:enter-cancelled="enterCancelled"
 
  v-on:before-leave="beforeLeave"
  v-on:leave="leave"
  v-on:after-leave="afterLeave"
  v-on:leave-cancelled="leaveCancelled"
>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值