手把手教会实现添加购物车动效

今天和大家分享一个购物车动效的实现方案,简单有效(づ ̄3 ̄)づ╭❤~
在这里插入图片描述

// 动态创建加入购物车的元素和动画
const createBall = (left, top) => {
 return new Promise((reslove) => {
  const bar = document.createElement('bar')
  const lableBtn = document.querySelector('#my-shopping-cart-box')
  let rect = lableBtn.getBoundingClientRect() // 获取统计按钮位置
  let size = [lableBtn.clientWidth, lableBtn.clientHeight] // 统计按钮本身高、宽
  const afterX = rect.x + size[0] / 2 // 计算小球最后的位置x
  const afterY = rect.y - size[1] / 2 // 计算小球最后的位置Y
  bar.classList = ['add-shoppiing-cart-bar']
  bar.style.position = 'fixed'
  bar.style.left = left + 'px'
  bar.style.top = top + 'px'
  bar.style.zIndex = '9999'
  // 实现效果的核心代码
  bar.style.transition = 'left 2s cubic-bezier(0.5, -0.5, 1, 1), top 1.3s linear'
  bar.innerHTML = '+999'
  document.body.appendChild(bar)
  setTimeout(() => {
   const x = afterX
   const y = afterY
   bar.style.top = y + 'px'
   bar.style.left = x + 'px'
  }, 100) /* 经实践,定时器时间间隔需要设置一定的时间间隔才有效果,设置为0无效果 */
  bar.ontransitionend = function () {
   const targetEle = document.querySelector('.add-shoppiing-cart-bar')
   document.body.removeChild(targetEle)
   reslove()
  }
 })
}

// 点击加入购物车事件
const handleAddCart = useDebounceFn(async (event) => {
 const x = event.clientX - 20
 const y = event.clientY - 20
 await createBall(x, y)
 // 调用新增购物车的商品的接口
 await addCart()
}, 500)
.add-shoppiing-cart-bar {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  z-index: 99;
  color: red;
}

tips:在实现的过程中的踩了个坑,本来改位置的setTimeout定时器的延时设置为0的,试了半天没效果,还以为这个实现思路不行,后面将定时器设为一个大一点的数字才有了效果。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用PyTorch实现MNIST数据集的手把手教程,你可以按照以下步骤进行操作: 1. 导入所需的库和模块。这包括PyTorch库和其他必要的辅助功能库。 2. 获取并预处理数据集。你可以使用MNIST数据集,该数据集包含了0到9的手写数字图像。可以使用torchvision库中的函数来下载和加载MNIST数据集。然后,你需要对图像进行预处理,例如将其转换为张量、进行归一化等。 3. 构建模型。在PyTorch中,你可以使用nn.Module类来定义模型。你可以选择使用卷积神经网络(CNN)或全连接神经网络(FNN)来构建模型。根据模型的复杂性和准确性需求进行选择。 4. 定义损失函数和优化器。根据你的问题和模型的输出类型,选择适当的损失函数,例如交叉熵损失函数。然后选择一个优化器,例如随机梯度下降(SGD)或Adam优化器。 5. 编写训练循环。在训练循环中,你需要定义训练过程中的前向传播、计算损失、反向传播和参数更新操作。同时,你还可以添加其他功能,例如计算准确率、记录训练损失等。 6. 编写测试循环。在测试循环中,你需要定义测试过程中的前向传播和计算准确率操作。 7. 定义主要函数。在主要函数中,你需要调用前面定义的函数和模型,对数据进行训练和测试,并输出结果。 请注意以上步骤只是一个大致的框架,具体的实现细节和代码可以根据你的需求和实际情况进行调整和修改。在实际操作中,你可能还需要考虑其他因素,例如数据扩充、模型调参和模型保存等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [PyTorch 手把手教你实现 MNIST 数据集](https://blog.csdn.net/weixin_46274168/article/details/118271544)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [使用自然语言TensorFlow或PyTorch构建模型处理(NLP)技术构建一个简单的情感分析模型(附详细操作步骤)....](https://download.csdn.net/download/weixin_44609920/88234133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值