发布网友 发布时间:2022-04-23 06:36
共4个回答
懂视网 时间:2022-05-19 04:55
本文为大家分享了微信小程序实现红包雨的具体代码,供大家参考,具体内容如下
今天有个小师妹来问我怎样用微信小程序实现红包雨效果,如果用web很好实现,但是小程序不是那么容易,整合自己也有一年没摸过小程序了,决定试一试。
首先明确“红包雨”的需求:
首先看看我做的效果吧
首先明确小程序实现红包雨和web网页实现红包雨难点上有什么不同:
好了那么问题来了怎样实现生成红包雨呢?小程序无法直接操作dom也就意味着不能向dom内添加元素,这里我的解决办法是先生成预设个数的红包在视窗外部(用户看不到),然后修改每个红包的样式来实现动画(当然用css keyframes帧动画也可以,我这里使用的是js修改属性)
话不多说直接上代码吧,代码内有注释
wxml:
<view wx:for="{{packetList}}" wx:for-index="index" wx:for-item="items"> <image class="red-packet" src="{{items.src}}" style="position:fixed;top:{{items.top}}px;left:{{items.left}}px;-webkit-transition:{{items.speed}}ms linear 0ms;transition:{{items.speed}}ms linear 0ms"> </image> </view>
wxss:
.red-packet{ width: 20px; height: 25px; z-index: 100; transition-property:transform,top; transform-origin:50% 50% 0; -webkit-transition-property:transform,top; -webkit-transform-origin:50% 50% 0; }
js:
Page({ /** * 页面的初始数据 */ data: { windowWidth:"",//窗口宽度 windowHeigh:"",//窗口高度 packetList:[{}],//红包队列 packetNum:200,//总共红包的数量 showInter:'// 循环动画定时器 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var that = this; // 获取手机屏幕宽高 wx.getSystemInfo({ success: function (res) { that.setData({ windowWidth: res.windowWidth, windowHeigh: res.windowHeight, top: res.windowHeight-100 //设置红包初始位置 }) } }) //建立临时红包列表 var packetList=[]; //建立临时红包图片数组 var srcList = ["../images/packet-one.png", "../images/packet-two.png"]; //生成初始化红包 for(var i=0;i<that.data.packetNum;i++){ // 生成随机位置(水平位置) var left = Math.random() * that.data.windowWidth-20; // 优化位置,防止红包越界现象,保证每个红包都在屏幕之内 if(left<0){ left+=20; } else if (left > that.data.windowWidth){ left-=20; } // 建立临时单个红包 var packet = { src: srcList[Math.ceil(Math.random() * 2) - 1], top: -30, left:left, speed:Math.random() * 2500+3000 //生成随机掉落时间,保证每个掉落时间保持在3秒到5.5秒之间 } // 将单个红包装入临时红包列表 packetList.push(packet); // 将生成的临时红包列表更新至页面数据,页面内进行渲染 that.setData({ packetList: packetList }) } // 初始化动画执行当前索引 var tempIndex=0; // 开始定时器,每隔1秒掉落一次红包 that.data.showInter=setInterval(function(){ // 生成当前掉落红包的个数,1-3个 var showNum = Math.ceil(Math.random() * 3); // 防止数组越界 if (tempIndex * showNum>=that.data.packetNum){ // 如果所有预生成的红包已经掉落完,清除定时器 clearInterval(that.data.showInter); }else{ switch (showNum){ case 1: //设置临时红包列表当前索引下的top值,此处top值为动画运动的最终top值 packetList[tempIndex].top = that.data.windowHeigh; // 当前次掉落几个红包,索引值就加几 tempIndex+=1; break; case 2: packetList[tempIndex].top = that.data.windowHeigh; packetList[tempIndex + 1].top = that.data.windowHeigh; tempIndex+=2; break; case 3: packetList[tempIndex].top = that.data.windowHeigh; packetList[tempIndex + 1].top = that.data.windowHeigh; packetList[tempIndex + 2].top = that.data.windowHeigh; tempIndex += 3; break; default: console.log(); } // 更新红包列表数据 that.setData({ packetList: packetList }) } },1000) } })
好了红包雨就这样实现了,其实还是蛮有意思的。
热心网友 时间:2022-06-08 17:01
回答1. 开启大家都熟识手机微信,点一下右下方“ ”,选择红包。2. 键入红包数量和总额,默认设置为拼手气好方式,额度为任意。也可以点一下深蓝色字体样式,“改成一般红包”。红包数尽可能数量大些,为便捷实际操作下一步。
3. 点一下发送后,进到红包拆掉自身发的红包,在红包未抢完以前拖至最底部,点一下深蓝色字体样式“再次发送此红包”。
4. 选择刚刚的群,点一下发送,进行。那样便是使用未抢完的红包发送第二个红包快链,要是手贼快,红包够多,以此流程,能够循环系统发送,直至红包抢完。
1、开启微信零钱-选择手机微信红包。
2、选择一般红包
3、设定红包数量为一百个(一定要一百个),单独额度看自身的挎包。创意文案先关键,简洁明了突出重点。确认支付之后红包,选择各自发送好几个手机联系人。
4、每一次只有发一百个人,不可以多不可以少,要不然下不上红包雨!选择好一百个朋友后,点进行,随后明确,选择发送,随后会提醒发不出去,要是反复点,点一次就发一次,你要下多长时间就你自己决策了。最后具体接到的只有一个红包
亲,
热心网友 时间:2022-06-08 18:19
付费内容限时免费查看回答发红包雨步骤如下:1、打开微信,点击右下角“+”号,选择红包。
2、输入红包个数和总金额,默认为拼手气模式,金额为随机。亦可点击蓝色字体,改为“普通红包”。红包数尽量数目大点,为方便操作下一步。
3、输入密码,选择发送。
4、点击发送后,进入红包拆完自己发的红包,在红包未抢完之前拖到最底端,点击蓝色字体“继续发送此红包”。
5、选择刚才的群,点击发送,完成。这样就是使用未抢完的红包发送第二个红包快链,只要手够快,红包够多,依此步骤,可以循环发送,直到红包抢完。
热心网友 时间:2022-06-08 19:53
付费内容限时免费查看回答发红包雨步骤如下:1、打开微信,点击右下角“+”号,选择红包。
2、输入红包个数和总金额,默认为拼手气模式,金额为随机。亦可点击蓝色字体,改为“普通红包”。红包数尽量数目大点,为方便操作下一步。
3、输入密码,选择发送。
4、点击发送后,进入红包拆完自己发的红包,在红包未抢完之前拖到最底端,点击蓝色字体“继续发送此红包”。
5、选择刚才的群,点击发送,完成。这样就是使用未抢完的红包发送第二个红包快链,只要手够快,红包够多,依此步骤,可以循环发送,直到红包抢完。
亲 以上为发红包雨步骤
热心网友 时间:2022-06-08 21:45
所谓的红包雨是指同时发送多个红包,你可以发完一个再发一个,这样接着一直发,发到你没钱了这雨就停了。