太阳集团5493conlogo

  • 微博
  • 微信
  • QQ好友
  • QQ空间
  • 百度
详细内容

红包雨开发攻略 3步解决不再虐-杭州APP开发为你呈现

时间:2023-08-06     作者:杭州APP开发【转载】   来自:微信派

随着小程序生态的蓬勃发展,商家积极策划小程序端的运营活动,赋能业务发展。例如在小程序内增加红包雨等趣味互动玩法,高效完成品牌宣传、商家券发放等运营任务。

image.png


红包雨示例



红包雨效果趣味性强、操作简单、交互体验好,但是开发者需要考虑多个逻辑,其中开发者需要重点关注的技术点包括:

  • 实现红包雨下落效果

  • 保证红包雨的渲染性能

  • 实现点击红包的消失动画

现在一起来看看如何突破上述技术点,快速实现红包雨动画效果!



实现红包雨下落效果

红包雨看似是不同的红包陆续降落,实际上这种效果是由一批批下落的红包组成。只要完成第一批红包雨效果,通过 setTimeout 继续实现批次重复,即可实现红包源源不断降落的效果。


那么如何开发第一批红包雨效果呢?

  1. 设置单个红包元素,例如下落角度、下落时间等

  2. 使用循环语句生成多个红包元素,添加到红包雨 list,调用 setData 执行渲染

  3. 使用 wx.nextTick(),在回调函数中开启动画

  4. 调用 wx.createAnimation({}) 生成动画实例对象 animation,调用 animation 设置红包雨的最终位置、旋转角度、动画持续时间

  5. 通过 Animation.export() 导出动画信息,通过 setData 设置红包的 animation 属性,并绑定到红包模板的 animation 动画属性



保证红包雨的渲染性能

通过上述方法,红包源源不断降落的效果即可实现。但是由于红包以弹层形式出现,容易出现下落密度不一致的渲染问题。


image.png


经过性能面板分析,发现阻碍渲染性能的主要原因是:

  • 使用 createAnimation() 给每个红包元素补充动画信息需要多次调用 setData

  • 红包雨 list 包含多个元素


对于第一个原因,开发者可以使用 关键帧动画 来解决,避免使用 setData 绑定动画,同时收到动画结束的回调函数。


基于这种方法,开发者执行动画后,使用 uuid 和标记对象进行标记,利用 this.$finishIdMap 判断红包是否播放完毕,将新一批次的红包和已播放完毕的红包合并渲染,进一步优化性能。这种方法能够有效减少 50% 以上的渲染时间。


对于第二个包含多个元素的原因,开发者可以通过缓存判断,销毁已完成动画播放的节点,即可实现性能优化。




实现点击红包的消失动画

正如上文提到,红包雨动画通过完成第一批红包渲染并且不断重复多个批次,即可实现红包降落。同理,点击红包消失的动画同样应用于这个逻辑。

  1. 绑定红包点击事件到第一批红包

  2. 修改后续批次的红包点击事件位置

  3. 绑定触碰事件到红包循环模版外的父元素,同时为红包可点击部分绑定数据项和点击标记

  4. 当父元素收到触碰事件,通过 e.target.dataset 获取到标记值,统计红包点击数



最后,开发者使用雪碧图与 animate 结合即可实现红包消失动画。



随着产品优化及开发能力提升,用户能够在小程序体验更多丰富的交互能力。通过上述方法,开发者了解到红包雨开发的过程,同时能够最大限度优化性能,保证用户体验。


如有其他小程序相关的问题,可在 微信开放社区 发帖互动,技术专员将为大家解答及进行深度交流。


原创|腾讯前端开发工程师 powellmao

image.png

太阳集团2138手机版
更多
  • 湾事通,已经是next level-杭州

    湾事通,已经是next level-杭州

    好消息,湾事通OneStop小程序升级了!这次升的是,英语专业八级。去年正式上线的湾事通OneStop小程序,由广东省政务服务和数据管理局指导、腾讯公司技术支持

  • [合并转发]莫言和余华的聊天记录-杭州抖

    [合并转发]莫言和余华的聊天记录-杭州抖

    猜猜看,在公众号领域,是谁既会写又诙谐?说的是这两位文坛泰斗。【注释】①文坛“潦草小狗”余华和“沉稳小狗”莫言,微信头像也是好朋狗。就传神感与还原度而言,这俩头

  • 有朋自远方来,微信支付准备好了!-杭州微

    有朋自远方来,微信支付准备好了!-杭州微

    今天,广交会开幕,全球外国人都来了。不知道各位外国友人准备好了没,反正你们的“绿朋友”微信支付已经准备好了——说明书,ready!机场,ready!酒店,rea

  • 怪牛的!13岁小孩做了个“校园暴力求助器

    怪牛的!13岁小孩做了个“校园暴力求助器

    请回答如你所想,答案是:所有。可是,对许多未成年人来说,如何在校园生活中清晰地识别校园暴力,并及时正确求助,目前仍是难题。但这一次,小学生help小学生。在重庆

  • 微信语音,还能这么用?-杭州网络公司为你

    微信语音,还能这么用?-杭州网络公司为你

    创作没有边界,爆改无处不见。在微信里,民间高手总能把短则1秒、长至60秒的语音条玩出花来,创意中带着抽象,一秒有一秒的含金量。强者从不抱怨环境。在你看不到的地方

  • 派,发一点春-杭州APP开发为你呈现

    派,发一点春-杭州APP开发为你呈现

    春天该很好。如果你带上手机,出门走走。做合格的采花猎人,从叫对一朵花的名字开始。——扫春本期摄影友情合作视频号创作者@耘兮小院 @海蒂的花园@黄先森的杂货花园 

  • 付款后!微信支付里解锁 4 个隐藏服务-

    付款后!微信支付里解锁 4 个隐藏服务-

    盲猜,99%的人可能都没有体验过,微信支付后的这些便捷服务。来看看,你使用过几个?AA制,无压力每位买单人都有不好意思AA的时刻,进则分毛必争,退则今天请客,i

  • 今日开始,钱包余额必“增”-杭州微信小程

    今日开始,钱包余额必“增”-杭州微信小程

    昨天,你们说:这不,来了!今天起,2023年度个税综合所得汇算清缴已经开始,可以直接前往个税APP办理年度汇算了。只要拥有国家职业资格证书,就可以抵扣个税。在微

  • 最新财报:增!-杭州网站建设为你呈现

    最新财报:增!-杭州网站建设为你呈现

    3月20日,腾讯公布了2023年全年业绩财报,微信及WeChat的合并月活跃账户数13.43亿。视频号视频号的总用户使用时长翻番,得益于推荐算法优化下日活跃账户

  • [语音] 60

    [语音] 60"--杭州网络公司为你呈现

    这个画面见过吗?这是最早的微信语音界面,距今已经13年了。从文字到声音,从眼睛到耳朵,当微信里有了语音,意味着沟通有了更多可能,也让交流的体验更立体。到现在,微

太阳集团5493con是一家专门致力于为企业提供全方位网站建设服务。年轻的我们带着梦想和对网络的热情走在互联网道路的前沿,一路走来,我们的努力和真诚得到了更多客户的认可。在未来的发在未来的发...

浙公网安备:33010602011153

seo seo