亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

微信小程序實現紅包雨功能

2020-03-21 16:14:44
字體:
來源:轉載
供稿:網友

本文為大家分享了微信小程序實現紅包雨的具體代碼,供大家參考,具體內容如下

今天有個小師妹來問我怎樣用微信小程序實現紅包雨效果,如果用web很好實現,但是小程序不是那么容易,整合自己也有一年沒摸過小程序了,決定試一試。

首先明確“紅包雨”的需求:

  • 隨機位置掉落
  • 隨機紅包樣式
  • 同一時間掉落個數隨機
  • 每個紅包的掉落速度隨機,但不能太快也不能太慢

首先看看我做的效果吧

微信小程序,紅包雨

    首先明確小程序實現紅包雨和web網頁實現紅包雨難點上有什么不同:

  • 小程序不能直接操作dom,web網頁可以操作
  • 小程序循環渲染wx:for內無法執行animation,web網頁中animation執行無條件約束
  • 小程序修改樣式屬性需要通過數據綁定無法直接修改,web網頁可以直接取dom元素進行修改

    好了那么問題來了怎樣實現生成紅包雨呢?小程序無法直接操作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) }})

好了紅包雨就這樣實現了,其實還是蠻有意思的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美在线第一页| 国产精品久久久久免费a∨| 久久91亚洲人成电影网站| 久久成人在线视频| 久久99精品久久久久久青青91| 欧美精品久久久久a| 午夜欧美不卡精品aaaaa| 中文字幕亚洲无线码在线一区| 秋霞成人午夜鲁丝一区二区三区| 欧美电影免费观看网站| 日韩中文在线中文网在线观看| 精品久久久久久久久久久久久久| 国产午夜精品麻豆| 久久国产视频网站| 午夜精品国产精品大乳美女| 国产v综合v亚洲欧美久久| 久久av.com| 亚洲精品之草原avav久久| 欧美日韩在线观看视频小说| 精品国内产的精品视频在线观看| 久久人人爽人人爽人人片av高清| 日韩美女免费线视频| 九九九久久国产免费| 一区二区三欧美| 亚洲欧美www| 亚洲第一色在线| 欧美日韩中国免费专区在线看| 中文字幕在线观看亚洲| 国产成人精品午夜| 精品美女国产在线| 国产a∨精品一区二区三区不卡| 日本精品免费一区二区三区| 亚洲成年人在线| 青青草原一区二区| 欧美在线视频a| 欧美精品久久久久久久| 国产精品激情av电影在线观看| 国产在线精品一区免费香蕉| 亚洲无线码在线一区观看| 日韩欧美国产成人| 欧美日韩国产成人在线| 国产成人精品久久亚洲高清不卡| 欧美另类69精品久久久久9999| 成人羞羞国产免费| 国产亚洲欧洲黄色| 亚洲а∨天堂久久精品喷水| 欧美裸身视频免费观看| 亚洲综合大片69999| 欧美日韩国产中文精品字幕自在自线| 欧美日韩精品在线| 亚洲一区二区三区四区视频| 国产精品男女猛烈高潮激情| 欧美另类极品videosbest最新版本| 亚洲国产精品视频在线观看| 久热精品在线视频| 国产精品久久久久久久久久久久| 国产成人欧美在线观看| 日韩美女免费视频| 国产午夜精品全部视频在线播放| 亚洲第一男人av| 欧美不卡视频一区发布| 欧美激情视频在线观看| 亚洲国产第一页| 日韩中文字幕网站| 久久亚洲精品成人| 欧美小视频在线| 欧美一区二区视频97| www.久久撸.com| 美女撒尿一区二区三区| 精品亚洲国产视频| 国模精品视频一区二区| 精品成人69xx.xyz| 国产精品免费视频xxxx| 91精品国产九九九久久久亚洲| 6080yy精品一区二区三区| 久久久在线观看| 欧美性猛交xxxx久久久| 一区二区三区高清国产| 亚洲欧美另类自拍| 在线看片第一页欧美| 91成人国产在线观看| 国产狼人综合免费视频| 午夜精品福利电影| 中文字幕亚洲专区| 欧美精品18videos性欧美| 精品久久久av| 97久久久久久| 欧美性猛交xxxx乱大交极品| 狠狠久久亚洲欧美专区| 国产精品成久久久久三级| 久久综合88中文色鬼| 午夜精品一区二区三区在线视| 国外成人免费在线播放| 97人洗澡人人免费公开视频碰碰碰| 疯狂欧美牲乱大交777| 国产精品成熟老女人| 91av在线免费观看| 亚洲美女动态图120秒| 亚洲第一精品久久忘忧草社区| 久久久久久国产精品三级玉女聊斋| 亚洲va欧美va国产综合久久| 日韩中文在线视频| 欧美色videos| 色婷婷av一区二区三区在线观看| 亚洲加勒比久久88色综合| 国外成人在线直播| 亚洲毛片在线免费观看| 57pao成人永久免费视频| 日韩精品极品在线观看播放免费视频| 97免费中文视频在线观看| 免费成人高清视频| 欧日韩不卡在线视频| 色999日韩欧美国产| 欧美性猛交xxxx乱大交极品| 98午夜经典影视| 亚洲xxx自由成熟| 成人免费观看49www在线观看| 国产精品午夜国产小视频| 91精品在线一区| 欧美大奶子在线| 国产美女久久精品香蕉69| 国产精品美女久久久久久免费| 日韩有码视频在线| 亚洲国产成人精品一区二区| 国产精品久久久久久久久久三级| 欧美黑人性生活视频| 国产日韩在线亚洲字幕中文| 国产午夜精品全部视频在线播放| 亚洲欧美日韩在线一区| 久久久久国产精品免费网站| 欧美精品videosex牲欧美| 国产精品久久久久不卡| 热re91久久精品国99热蜜臀| 久久艹在线视频| 亚洲国产中文字幕在线观看| 欧美日韩国产999| 日韩av免费网站| 日韩亚洲欧美中文在线| 韩国三级电影久久久久久| 久久久www成人免费精品| 日韩在线视频网| 国产一区二区视频在线观看| 91在线视频精品| 亚洲欧洲黄色网| 日本不卡免费高清视频| 亚洲午夜久久久影院| 91精品久久久久久久久久久久久| 久久亚洲精品一区二区| 亚洲国产91精品在线观看| 欧美在线观看www| 91精品国产色综合久久不卡98| 欧美特黄级在线| 欧美性猛交xxxx免费看久久久| 久久久99免费视频| 一区二区在线视频播放| 日韩免费精品视频| 欧美午夜宅男影院在线观看| 91热精品视频| 日韩在线观看精品| 最近2019中文字幕mv免费看| 97人人模人人爽人人喊中文字| 456国产精品| 北条麻妃一区二区在线观看| 亚洲国产精品人人爽夜夜爽|