小程序animation实现类似每日优鲜加入购物车动画

微信小程序 - 最新详细点餐界面添加购物车左右摆动动画(用户点击添加到购物车后会有一个左右摆动的购物车提示) 效果图 动画代码 这里只提供图中购物车动画代码,不提供以上点餐界面(需要点餐界面点击这里:Gitee仓库)。 在触发代码中使用this.cartWwing()调用动画,不理解请访问教程。 /** *点击商品+号购物车摆动 *@returnvoid */ cartWwing:function() { //创建动画实例(animation) varanimation=wx.createAnimation({ duration:100,//动画持续时间 阅读详情

效果图:在这里插入图片描述
效果图视频转gif效果较差,实际效果很好哦!

html:

<block wx:for="{{ leftList }}" wx:for-item="item" wx:key="leftList">
      <view class="goods-item" bindtap="gotoDetails" data-id="{{item.id}}">
        <image class='page_image class-image class-image-left' style='height:{{item.Height}}px' src='{{item.goodsPic}}' mode="aspectFill" id="{{'left' + index}}"></image>
        <image 
          src="{{addGoodsSrc}}" 
          class="animation-img" 
          style="height:{{item.Height}}px;opacity:{{showGoodsPic?'1':'0'}}"
          animation='{{goodsAnimation}}' 
        ></image>
        <view class='page_title' style='height:{{waterfallGap}}rpx'>
          <view class='page_title_spen'>{{ item.goodsName }}</view>
          <view class='goods-desc'>商品描述性文字</view>
          <view 
            class="goods-price-box" 
            catchtap="addCart" 
            data-src="{{item.goodsPic}}" 
            data-type = "left"
            data-index="{{index}}">
            <price-filter>
              <view slot="symbol">¥</view>
              <view slot="price">{{item.goodsPrice}}</view>
            </price-filter>
            <image class="add-cart-icon" src="/images/common/addCart.png" ></image>
            <view class="goods-num">{{item.sailNum}}</view>
          </view>
        </view>
      </view>
    </block>

css:

.goods-item{
  background: white;
  margin-bottom: 14rpx;
  border-radius: 20rpx;
  overflow: hidden;
}

.page_image{
  display: block;
  width: 100%;
}

.page_title{
  padding: 20rpx;
}
.page_title_spen{
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  font-size: 30rpx;
  line-height: 36rpx;
  text-align: justify;
  color: #333
}

.goods-desc{
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  font-size: 28rpx;
  color: #999;
}

.goods-price-box{
  position: relative;
  margin-top: 30rpx;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.goods-num{
  position: absolute;
  min-width: 30rpx;
  height: 30rpx;
  line-height: 30rpx;
  text-align: center;
  top: -16rpx;
  right: -16rpx;
  background: red;
  color: white;
  border: 2px solid white;
  border-radius: 50%;
  font-size: 20rpx;
}

.goods-sale-price{font-size: 34rpx;font-weight: bold;color:var(--price-color)}
.add-cart-icon{display: block;width: 56rpx;height: 56rpx}

.animation-img {
  position: fixed;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

js:

import debounce from "../../../debounce.js"; //函数节流,可以去掉
const animationBack = wx.createAnimation({ //还原商品动画的起始位置及图片大小
  duration: 50,
  timingFunction: 'linear'
})
const animation = wx.createAnimation({ //商品加入购物车动画
  duration: 500,
  timingFunction: 'ease-in'
})
let activeImgInfo = []
Component({
  data: {
    //购物车x坐标
    animationx: wx.getSystemInfoSync().windowWidth / 4 * 2.5,
    //购物车y坐标
    animationy: wx.getSystemInfoSync().windowHeight + 50,
    //是否显示飞行物,默认不显示
    showGoodsPic: true,
    //动画对象
    goodsAnimation: {},
    //当前点击的商品图片
    addGoodsSrc: '',
    count:1
  },

  methods: {
	//加入购物车
    addCart: debounce.throttle(function (e) {
      var that = this;
      let target = e[0].currentTarget.dataset;
      let activeId = '#' + target.type + target.index; //获取目标节点id
      const getEleInfo = this.createSelectorQuery();
      getEleInfo.select(activeId).boundingClientRect(function (rect) {
        activeImgInfo = [rect.width, rect.height, rect.top, rect.left]; //获取目标节点的信息(宽、高、top、left)
        that.setData({ //赋值点击的商品图片并展示
          addGoodsSrc: target.src
        }, function () {
          animationBack.left(activeImgInfo[3]).top(activeImgInfo[2]).width(activeImgInfo[0]).height(activeImgInfo[1]).step()
          that.setData({
            goodsAnimation: animationBack.export()
          })
          setTimeout(() => {
			animation.left(that.data.animationx).top(that.data.animationy).width(0).height(0).step()
            that.setData({
              showGoodsPic: true,
              goodsAnimation: animation.export()
            })
            setTimeout(() => {
              var counttemp = that.data.count + 1
              that.setData({
                showGoodsPic: false,
                count:counttemp
              })
            }, 500)
          }, 100)
        })
      }).exec()
      // this.triggerEvent("clickDom", e[0].currentTarget.dataset.data);
    }, 600)
  }
})

微信小程序 - 点餐界面购物车动画效果实现 在微信小程序的点餐界面中,为了提升用户体验,我们可以为购物车添加左右摆动的动画效果。下面我将为你提供一种实现这种动画效果的方法,并附上相应的源代码。首先,我们需要在小程序的页面中定义一个购物车的图标,并为其添加点击事件。当用户点击购物车图标时,购物车将展开并显示所选商品的详细信息。创建了一个动画实例,并根据购物车的当前状态执行相应的动画效果。这样,当用户点击购物车图标时,购物车将展开或关闭,并伴随着左右摆动的动画效果。的函数,该函数用于切换购物车的展开和关闭状态。方法更新购物车动画的状态。 阅读详情

相关推荐

Cisco三层交换机的详细配置

** 本文适用于新手小白以及微微基础的同学来用于参考,实验是在Cisco Packet Tracer Student 进行,实验最终效果如图所示,所有命令配置与图中的一致。 使用到的机器型号为:五台电脑,一台服务器,三个普通交换机(2960型号),一个三层交换机(3560-24PS),两台普通服务器(2811) 文章目录一、什么是三层交换机二、配置交换机步骤1.配置二层交换机2.配置三层交换机3.配置两台路由器以及最后一台电脑 一、什么是三层交换机 1.三层交换机 = 三层路由+二层交换机 2.工作在

真正的大师,永远都怀着一颗学徒的心。 4万+

微信小程序加入购物车动画

微信小程序加入购物车动画 *人狠话不多,直接代码搞起* 点击github下载小demo,可以直接运行看效果,了解二次贝塞尔曲线的可以自己玩。 小程序加入购物车动画效果:点击商品,出现一个小的商品图,呈现曲线(贝塞尔曲线/抛物线)飞向购物车的图标里。 ...

Hassan的小博客! 8258

实战指南:基于华为Ascend NPU的大模型W8A8量化调优与精度提升

本文提供了一份基于华为Ascend NPU进行大模型W8A8量化的实战调优指南。详细介绍了从环境搭建、使用msmodelslim框架进行基础量化,到通过离群值抑制、校准集优化和量化回退等关键技术提升精度的全流程。旨在帮助开发者在华为NPU硬件上实现模型推理的显著加速,同时有效控制精度损失。

weixin_29227425的博客 272

二阶贝塞尔曲线实现添加购物动画

贝塞尔曲线

搬砖路上的博客 334

决策树简介/PPT

最近给我们组新生讲了决策树的相关知识,以下是所做的PPT,参考了网络资源。

垃圾就应该待在垃圾桶里的博客 3796

DolphinScheduler+DataX实战:5分钟搞定MySQL到Hive数据同步(附完整JSON配置)

本文详细介绍了如何利用DolphinScheduler与DataX构建企业级数据同步流水线,实现MySQL到Hive的高效数据同步。文章提供了从环境部署、核心组件配置到完整JSON配置的实战指南,并深入探讨了性能调优、增量同步策略以及生产环境下的监控与错误处理,帮助读者快速搭建稳定可靠的数据同步方案。

5b6n7m8的博客 255

“完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。...

最近做,微信点餐小程序,遇到添加商品时出现抛物动画,参考借鉴了这位大神的方法 https://www.cnblogs.com/greengage/p/7815842.html 但出现了一个问题,连续点击加入购物车时,抛物动画报错。如图: 我的解决方法是: //购物车抛物动画 (时间间隔)(解决点击过于频繁时,抛物动画报错问题) var nowTime = new Dat...

weixin_34237596的博客 486

数字IC设计避坑指南:为什么477条net的DRV问题无法修复?解析don‘t touch hierarchy的影响

本文深入解析了数字IC后端实现中,因“don't touch hierarchy”约束导致大量DRV违规(如477条net)无法自动修复的根本原因。文章以Cadence Innovus工具为例,详细阐述了DRV修复机制与设计保护约束的冲突原理,并提供了从日志定位、风险评估到分级解除约束的完整实战策略,帮助工程师有效解决此类设计收敛难题。

hope8的博客 290

微信小程序srt_微信小程序微商城(八):缓存实现商品购物车功能

看效果web 购物车.gif小程序开发计划微信小程序一、商品详情页将商品信息放入缓存二、购物车页面读取缓存获取商品信息三、购物车商品计算和删除缓存商品1、商品详情页将商品信息放入缓存数组detail.wxml缓存肯定绑定bindtap事件将商品加入购物车。微信detail.jsapp/*** 加入购物车*/addCar: function (e) {var goods = this.data.go...

weixin_39801613的博客 1592

Agentic RL: 大模型后训练 SFT、PPO和GRPO

本文介绍了从LLM训练到Agentic RL的发展过程。传统LLM训练包括预训练和后训练两个阶段,其中后训练通过监督微调、奖励建模和强化学习等技术优化模型表现。针对智能体在复杂任务中的不足,提出了Agentic RL新范式,将LLM嵌入强化学习框架,通过多步交互、工具使用和环境反馈来优化长期目标。相比传统单轮对话优化(PBRFT),Agentic RL具有状态包含历史上下文、行动类型多样、动态状态转移等特点,更适合解决需要多步推理和规划的任务。这种新方法为开发更强大的智能体系统提供了可能。

Cachel Wood的博客 700

微信小程序加入购物车动画-CSS实现

写完后效果跟老乡鸡差不多,产品经理孙某边啃鸡腿边说上线,其实还有几点不足。1.小球落入的位置有偏移,因为是px,各个设备之间有落入差异2.高度写死,不够灵活。其实可以用购物车距离顶部的距离减去点击元素距离顶部的距离来设为高度(qunimalaozibuxiele ),不过效果差距不大,而且出于性能原因写死较为方便。

wyf5275的博客 2248

Linux驱动学习--HCI框架及源码分析

目录 一、引言 二、HCI框架 三、pcm_read简要分析 一、引言 最近一直在分析蓝牙驱动,发现在底层驱动与上层协议栈间还有一层HCI,主机控制层,两者之间通过HCI协议通讯 而Linux也将HCI协议抽象层了一个框架。 为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式绞合起来,并提供一些公共函数的实现。 今天就来简单的分析一下 二

文艺小少年的博客 2003

uniapp/微信小程序实现加入购物车点击添加飞到购物车动画

1. 为每个点击元素设置不同的class,才能通过uni.createSelectorQuery来获取每个元素的节点信息;每次点击添加按钮时,往该按钮上方添加一个悬浮元素,通过位移动画将元素移到目标位置。4. 计算动画元素到目标位置的距离,获得xy坐标执行位移动画;3. 获取点击元素的节点信息将动画元素放置到点击元素上方;5. 等待每个动画元素执行动画完毕后移除该元素。2. 添加一个与点击元素一模一样的动画元素;

Honiler的博客 2773

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

微信小程序加入购物车效果动画

微信小程序加入购物车效果动画前言准备实现原理布局样式逻辑实现尾巴 前言 好久没有写过博客了,最近做了个微信小程序(后面统称小程序)加入购物车动画效果,然后给大家分享下。还是老规矩,先看效果图镇楼。 因为是demo,所以UI美观度请无视,如果是你需要的效果或者功能,那就请接下来往下看。 准备 准备一张购物车图片,如下 实现 实现这个效果主要就是用小程序提供的动画相关的API,如果你对小程序动画相关...

abs625的博客 6343

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

微信小程序实现飞入购物车动画

最近在弄的一个小程序项目中有一个飞入购物车的动画需求,这种动画效果类似于美团的加入购物车的效果,对于我这种前端菜鸡来说简直就是脑阔疼。 浏览了一些网上几篇类似的文章,发现原理基本一致,都是使用三次贝塞尔曲线实现。代码实现这一块我参考了这位大佬的文章。 但是大佬的效果还是满足不了我的需求,所以自己有手动改了一下大佬的代码,主要是将动画实现那一块用微信小程序提供的animate实现。 自己感觉效果不错,而且用了比较笨的办法实现了简单的多个小球飞入,详细可以看我的github。里面的代码基本上大佬的代码,本人懒加

weixin_44113868的博客 2814

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

微信小程序实现加入购物车抛物线动画

微信小程序合集更更更之实现加入购物车抛物线动画

苏苏就是小苏苏的博客 1322

微信小程序加入购物车小圆点动画

思路是使用小程序的api animation.translate()来转移和复位

weixin_61269581的博客 688

Taro微信小程序实现 美团购物车小红点动画效果

Taro 实现微信小程序的商城商品加入购物车时的小红点动画效果

fth1002853070的博客 2222

微信小程序飞入购物车动画

微信小程序飞入购物车动画

xniYa的博客 1245

vue、微信小程序 实现简单购物车加购动画效果

🛒 购物车</view>-- 这里可以添加一个隐藏的列表来模拟加购的商品,但在这个例子中我们省略它 --></view>-- 假设我们用一个动画元素来模拟加购的动画 -->商品加入购物车

weixin_60631847的博客 879

小程序实现购物车商品飞入效果-贝塞尔曲线动画

小程序实现购物车抛物线效果,贝塞尔曲线动画效果

那片枫叶~ 3836

小程序加入购物车动画效果及还原动画

1:先贴一下效果图,点击"+"出现垂直向下的效果。 2:首先是页面以及样式部分; index.wxml: <!-- 加入购物车箭头 --> <view class='Arrow' animation="{{animation}}" wx:if="{{showAnmimation}}"> <image src='../../imag...

qq_41851047的博客 5769

微信小程序开发--购物车动画与加减

微信小程序开发实现购物车动画与加减的步骤教程: 实现以下业务逻辑 购物车动画 购物车内加减 一、购物车动画 cascadeToggle: function () { //切换购物车开与关 if (that.data.maskVisual =...

chuti6853的博客 779

微信小程序购物车抛物动画

参考文章:https://www.cnblogs.com/tongkaiqiang/p/9083571.html 简化版: 先新建一个test页面,最终的效果如下: test.js代码: // pages/test/test.js Page({ /** * 页面的初始数据 */ data: { globalData: {}, // 保存屏幕的宽高 ...

qq_39025670的博客 3212
上一篇: vue项目实现自定义tabBar组件的封装
下一篇: vue3中普通文件获取vuex4中state的值
哈库拉Ma塔塔
博客等级 码龄8年 3粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值