+
95
-

微信小程序如何实现添加购物车动画效果?

微信小程序如何实现添加购物车动画效果?

网友回复

+
15
-

原理就是记录下购买按钮点击的位置x.y,然后通过新建小球组件来播放css的动画,结束后给父组件一个回调即可。

点击页面记录一下点击的位置并显示小球:

// 购买页面点击事件 buy.js
buy(event){
  this.setData({
    "position.startX": event.touches[0].clientX,
    "position.startY": event.touches[0].clientY,
    showBall: true
  });
}
// buy.wxml

新建一个组件 animationBall.wxml

// animationBall.wxml

<view bindanimationend="observeAnimation" class="ball-box animationBall" wx:if="{{showBall}}" style="{{style}}">
</view>

// animationBall.wxss
.ball-box {
  width: 20rpx;
  height: 20rpx;
  border-radius: 100%;
  position: fixed;
  z-index: 10;
  left: var(--startX);
  top: var(--startY);
}
//y轴位移:小球先有一小段的上升,上升到最高点,这一段y轴位移一直在增加,我们给它动画叫做throwTopY,接下来抛物线下降,这个过程y轴一直在减少,一直减少到我们终点为止,我们叫做throwDropY。
@keyframes throwTopY {
  0% {
    top: var(--startY);
  }
  100% {
    top: calc(var(--startY) - 120rpx);
  }
}
@keyframes throwDr...

点击查看剩余70%

我知道答案,我要回答