最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序?qū)崿F(xiàn)多宮格抽獎活動

 更新時間:2020年04月15日 15:20:29   作者:西江無月  
這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)多宮格抽獎功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近閑來無事,做了一個多宮格抽獎的例子,有什么需要改進或者錯誤的地方,請留言,謝謝

首先看效果:

思路是先讓其轉(zhuǎn)動2圈多,然后再進行抽獎,格子運動用的是setTimeout,讓其運行的時間間隔不一樣,然后產(chǎn)生運動快慢的效果

好了,上代碼

首先是WXML(這里面的判斷可能有些繞,仔細按順序看,因其第五個和第十一個格子在不同手機屏幕大小上的顯示有問題,所以再次給它們判斷了一下)

<view class="box">
 <view class="boxsub {{luckynum==index?'luck':''}}" wx:for='{{box}}' style="{{index>0&&index<4?'top:0;left:'+index*140+'rpx;':(index>3&&index<8?'right:0;top:'+((index-4)*100)+'rpx;':(index>7&&index<12?'bottom:0;right:'+(index-7)*140+'rpx;':(index>11&&index<14?'left:0;bottom:'+(index-11)*100+'rpx;':'')))}} {{index=='4'?'top:0;':''}} {{index=='11'?'left:0;':''}} " wx:key=''>
  <text class='boxcontent' style='{{item.name.length>6?"line-height:40rpx;margin-top:10rpx;":"line-height:100rpx;"}}'>{{item.name}}</text> 
 
 </view>
 <view class="lucky" catchtap="luckyTap">
 <text class="taplucky">點擊抽獎</text>
 <text class="howMany">您還有<text class="howMany_num" >{{howManyNum}}</text>次抽獎機會</text>
 </view>
</view>
<view class="explain">

</view>

WXSS:

.box{
 margin:20rpx 25rpx;
 height: 400rpx;
 width: 698rpx;
 /*border:1px solid #ddd;*/
 position: relative;
 /*box-sizing: border-box;*/
}
.boxsub{
 width: 140rpx;
 height: 100rpx;
 /*border: 1px solid #f00;*/
 box-sizing: border-box;
 position: absolute;
 background: #ff6100;
 border: 1rpx solid #fff;
 
}
.boxcontent{
 text-align: center;
 font-size: 26rpx;
 display: block;
 color: #fff;
}
.lucky{
 width: 300rpx;
 height:130rpx;
 background:#ff6100;/* #ff6100;007FFF*/
 position: absolute;
 left: 0;
 bottom: 0;
 right: 0;
 top: 0rpx;
 margin: auto;
}

.lucky:active{
 opacity: 0.7;
}
.taplucky{
 display: block;
 text-align: center;
 font-size: 30rpx;
 line-height: 50rpx;
 height: 50rpx;
 color: #fff;
 margin-top: 20rpx;
}
.howMany{
 display: block;
 text-align: center;
 font-size: 26rpx;
 color: #fff;
 line-height: 40rpx;
 height: 40rpx;
}
.howMany_num{
 color:#007FFF;
 font-size:32rpx;
 line-height:40rpx;
 padding:0 10rpx;
}
.luck{
 opacity: 0.5;
 background: #ff6100;
}

JS

var time = null;//setTimeout的ID,用clearTimeout清除
Page({
 data: {
 box: [{
 name:'100積分'
 }, {
 name: '10元優(yōu)惠券\n滿100可用'
 }, {
 name: '60積分'
 }, {
 name: '30積分'
 }, {
 name: '50積分'
 }, {
 name: '30元優(yōu)惠券\n滿120可用'
 }, {
 name: '100積分'
 }, {
 name: '200積分'
 }, {
 name: '10積分'
 }, {
 name: '50積分'
 }, {
 name: '40積分'
 }, {
 name: '50優(yōu)惠券滿500可用'
 }, {
 name: '60積分'
 }, {
 name: '70積分'
 }],
 luckynum:0,//當前運動到的位置,在界面渲染
 howManyNum:10,//抽獎的剩余次數(shù)
 content:{
 index: 0, //當前轉(zhuǎn)動到哪個位置,起點位置
 count: 0, //總共有多少個位置
 speed: 50, //初始轉(zhuǎn)動速度
 cycle: 3*14, //轉(zhuǎn)動基本次數(shù):即至少需要轉(zhuǎn)動多少次再進入抽獎環(huán)節(jié),這里設置的是轉(zhuǎn)動三次后進入抽獎環(huán)節(jié)
 },
 prize:0,//中獎的位置
 luckytapif:true//判斷現(xiàn)在是否可以點擊
 },
 //點擊抽獎
 luckyTap:function(){
 var i=0,
 that=this,
 howManyNum = this.data.howManyNum,//剩余的抽獎次數(shù)
 luckytapif = this.data.luckytapif,//獲取現(xiàn)在處于的狀態(tài)
 luckynum = this.data.luckynum,//當前所在的格子
 prize =Math.floor(Math.random()*14) ;//中獎序號,隨機生成
 if (luckytapif && howManyNum>0){//當沒有處于抽獎狀態(tài)且剩余的抽獎次數(shù)大于零,則可以進行抽獎
 console.log('prize:'+prize);
 this.data.content.count=this.data.box.length;
 this.setData({
 howManyNum:howManyNum-1//更新抽獎次數(shù)
 });
 this.data.luckytapif=false;//設置為抽獎狀態(tài)
 this.data.prize = prize;//中獎的序號
 this.roll();//運行抽獎函數(shù)
 } else if (howManyNum == 0 && luckytapif){
 wx.showModal({
 title: '',
 content: '您的抽獎次數(shù)已經(jīng)沒有了',
 showCancel:false
 })
 }
 },
//抽獎
 roll:function(){
 var content=this.data.content,
 prize = this.data.prize,//中獎序號
 that=this;
 if (content.cycle - (content.count-prize)>0){//最后一輪的時間進行抽獎
 content.index++;
 content.cycle--;
 this.setData({
 luckynum: content.index%14 //當前應該反映在界面上的位置
 });
 setTimeout(this.roll, content.speed);//繼續(xù)運行抽獎函數(shù)
 }else{
 if (content.index < (content.count*3 + prize)){//判斷是否停止

 content.index++; 
 content.speed += (550 /14);//最后一輪的速度,勻加速,最后停下時的速度為550+50
 this.data.content=content;
 this.setData({
  luckynum: content.index % 14
 });
 console.log(content.index, content.speed);//打印當前的步數(shù)和當前的速度
 setTimeout(this.roll,content.speed);
 }else{
 //完成抽獎,初始化數(shù)據(jù)
 console.log('完成');
 content.index =0;
 content.cycle = 3 * 14;
 content.speed = 50;
 this.data.luckytapif = true;
 clearTimeout(time);
 wx.showModal({
  title: '',
  content: '恭喜你抽到了'+that.data.box[prize].name,
  showCancel:false
 })
 }
 }
 },
 onLoad: function (options) {
 
 },
 onReady: function () {
 
 },
 onShow: function () {
 
 },
 onHide: function () {
 
 },
 onUnload: function () {
 
 }
})

完結(jié)。

想要學習更多關于抽獎功能的實現(xiàn),請參考此專題:抽獎功能

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 前端使用domtoimage生成截圖的詳細步驟

    前端使用domtoimage生成截圖的詳細步驟

    前端生成截圖技術多樣,html2canvas雖詳細但耗時且阻塞操作,而domtoimage使用流暢,支持多種圖片格式轉(zhuǎn)換,如png、jpg、svg等,并可獲取原始像素值,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • JavaScript代碼性能優(yōu)化總結(jié)(推薦)

    JavaScript代碼性能優(yōu)化總結(jié)(推薦)

    下面小編就為大家?guī)硪黄狫avaScript代碼性能優(yōu)化總結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-05-05
  • 微信小程序動態(tài)添加和刪除組件的現(xiàn)實

    微信小程序動態(tài)添加和刪除組件的現(xiàn)實

    這篇文章主要介紹了微信小程序動態(tài)添加和刪除組件的現(xiàn)實,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • js禁止小鍵盤輸入數(shù)字功能代碼

    js禁止小鍵盤輸入數(shù)字功能代碼

    js禁止小鍵盤輸入數(shù)字功能代碼,需要的朋友可以參考下。
    2011-08-08
  • 移動端效果之IndexList詳解

    移動端效果之IndexList詳解

    這篇文章主要為大家詳細介紹了移動端效果之IndexList,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 第六章之輔組類與響應式工具

    第六章之輔組類與響應式工具

    Bootstrap,來自 Twitter,是目前最受歡迎的前端框架。本文給大家介紹BootStrap組件之輔組類與響應式工具,感興趣的朋友一起學習吧
    2016-04-04
  • javascript合并表格單元格實例代碼

    javascript合并表格單元格實例代碼

    這篇文章主要介紹了javascript合并表格單元格實例代碼,在某些應用中需要動態(tài)的合并單元格,感興趣的朋友可以參考一下
    2016-01-01
  • 在Layui中實現(xiàn)開關按鈕的效果實例

    在Layui中實現(xiàn)開關按鈕的效果實例

    今天小編就為大家分享一篇在Layui中實現(xiàn)開關按鈕的效果實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JavaScript實現(xiàn)簡單的拖動效果

    JavaScript實現(xiàn)簡單的拖動效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)簡單的拖動效果,具有一定的參考價值,感興趣的朋友可以參考一下
    2016-07-07
  • 如何使用 JavaScript 操作瀏覽器歷史記錄 API

    如何使用 JavaScript 操作瀏覽器歷史記錄 API

    這篇文章主要介紹了如何使用 JavaScript 操作瀏覽器歷史記錄 API,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2020-11-11

最新評論

翼城县| 苍溪县| 樟树市| 项城市| 和林格尔县| 三河市| 阿尔山市| 天门市| 静海县| 多伦县| 金塔县| 罗山县| 长宁区| 哈尔滨市| 永和县| 阿瓦提县| 顺昌县| 涟水县| 金乡县| 花垣县| 阳新县| 定西市| 定南县| 郎溪县| 来凤县| 万荣县| 嘉义县| 故城县| 遵义市| 巴南区| 绥阳县| 宾川县| 巴塘县| 铁力市| 安龙县| 河北省| 壶关县| 石阡县| 习水县| 当涂县| 饶河县|