欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

本文實例為大家分享了微信小程序?qū)崿F(xiàn)九宮格抽獎的具體代碼,適用于年會抽獎,供大家參考,具體內(nèi)容如下

效果圖比較卡頓,真實運行效果是旋轉(zhuǎn)的

用到的素材:

實現(xiàn)步驟:

實現(xiàn)原理

改變每一項的透明度實現(xiàn)選中效果。利用setTimeOut時間使旋轉(zhuǎn)速度越來越慢。達到慢慢停止的效果。實際應(yīng)用中可以將9張獎品圖片和中獎項均通過接口返回。以方便獎品的調(diào)整。 

1.布局繪制

<view class="container">
 停止位置:<input value='{{luckPosition}}' style="width:100%;text-align:center" bindinput='input' type='number'></input>
 <view class='frame_view'>
<view class='frame_row'>
<image class='frame_item' style='opacity:{{color[0]}}' src='{{images[0]}}'></image>
<image class='frame_item' style='opacity:{{color[1]}}' src='{{images[1]}}'></image>
<image class='frame_item' style='opacity:{{color[2]}}' src='{{images[2]}}'></image>
</view>
 
<view class='frame_row'>
<image class='frame_item' style='opacity:{{color[7]}}' src='{{images[7]}}'></image>
<image class='frame_item' src='{{btnconfirm}}' bindtap='{{clickLuck}}'></image>
<image class='frame_item' style='opacity:{{color[3]}}' src='{{images[3]}}'></image>
</view>
 
<view class='frame_row'>
<image class='frame_item' style='opacity:{{color[6]}}' src='{{images[6]}}'></image>
<image class='frame_item' style='opacity:{{color[5]}}' src='{{images[5]}}'></image>
<image class='frame_item' style='opacity:{{color[4]}}' src='{{images[4]}}'></image>
</view>
</view>
</view>

2.數(shù)據(jù)準備

//計數(shù)器
var interval = null;
 
//值越大旋轉(zhuǎn)時間越長 即旋轉(zhuǎn)速度
var intime = 50;
 
 
data: {
 color: [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5],
 //9張獎品圖片
 images: ['/images/item.png', '/images/item1.png', '/images/item.png', '/images/item1.png', '/images/item.png', '/images/item1.png', '/images/item.png', '/images/item1.png', '/images/item.png'],
 
 //確定按鈕
 btnconfirm: '/images/dianjichoujiang.png',
 
 //點擊事件
 clickLuck:'clickLuck',
 //中獎位置
 luckPosition:0,
 },

3.顯示界面時慢慢轉(zhuǎn)動

//進入頁面時緩慢切換
 loadAnimation:function (){
 var e = this;
 //初始位置為0
 var index = 0;
 //每1秒鐘切換一次位置
 interval = setInterval(function () {
 if (index > 7) {
 index = 0;
 e.data.color[7] = 0.5
 } else if (index != 0) {
 e.data.color[index - 1] = 0.5
 }
 e.data.color[index] = 1
 e.setData({
 color: e.data.color,
 })
 index++;
 }, 1000);
}

4.停止旋轉(zhuǎn)

//which為中獎位置 需要停止時調(diào)用該方法
stop: function (which){
 var e = this;
 //清空計數(shù)器
 clearInterval(interval);
 //初始化當(dāng)前位置
 var current = -1;
 var color = e.data.color;
 for (var i = 0; i < color.length; i++) {
 if (color[i] == 1) {
 current = i;
 }
 }
 //下標從1開始
 var index = current + 1;
 
 e.stopLuck(which, index, intime, 10);
 },
 
 
/**
 * which:中獎位置
 * index:當(dāng)前位置
 * time:時間標記
 * splittime:每次增加的時間 值越大減速越快
 */
 stopLuck: function (which, index,time,splittime){
 var e = this;
 //值越大出現(xiàn)中獎結(jié)果后減速時間越長
 var color = e.data.color;
 setTimeout(function () {
 //重置前一個位置
 if (index > 7) {
 index = 0;
 color[7] = 0.5
 } else if (index != 0) {
 color[index - 1] = 0.5
 }
 //當(dāng)前位置為選中狀態(tài)
 color[index] = 1
 e.setData({
 color: color,
 })
 //如果旋轉(zhuǎn)時間過短或者當(dāng)前位置不等于中獎位置則遞歸執(zhí)行
 //直到旋轉(zhuǎn)至中獎位置
 if (time < 400 || index != which){
 //越來越慢
 splittime++;
 time += splittime;
 //當(dāng)前位置+1
 index++;
 e.stopLuck(which, index, time, splittime);
 }else{
 //1秒后顯示彈窗
 setTimeout(function () {
 if (which == 1 || which == 3 || which == 5 || which == 7) {
 //中獎
 wx.showModal({
 title: '提示',
 content: '恭喜中獎',
 showCancel: false,
 success: function (res) {
 if (res.confirm) {
 //設(shè)置按鈕可以點擊
 e.setData({
 btnconfirm: '/images/dianjichoujiang.png',
 clickLuck: 'clickLuck',
 })
 e.loadAnimation();
 }
 }
 })
 } else {
 //中獎
 wx.showModal({
 title: '提示',
 content: '很遺憾未中獎',
 showCancel: false,
 success:function(res){
 if(res.confirm){
 //設(shè)置按鈕可以點擊
 e.setData({
 btnconfirm: '/images/dianjichoujiang.png',
 clickLuck: 'clickLuck',
 })
 e.loadAnimation();
 }
 }
 })
 }
 }, 1000);
 }
 }, time);
 },

5.可以點擊按鈕后停止抽獎  或者點擊開始抽獎停止一段時候后自動停止

//模擬網(wǎng)絡(luò)請求時間 設(shè)為兩秒
 var stoptime = 2000;
 setTimeout(function () {
 e.stop(e.data.luckPosition);
 }, stoptime)

gitub地址:微信小程序九宮格抽獎

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

相關(guān)文章

  • 一文搞懂如何避免JavaScript內(nèi)存泄漏

    一文搞懂如何避免JavaScript內(nèi)存泄漏

    SPA的興起,促使我們更加關(guān)注與內(nèi)存相關(guān)的JavaScript編碼實踐。如果應(yīng)用使用的內(nèi)存越來越多,就會嚴重影響性能,甚至導(dǎo)致瀏覽器的崩潰。下面就來看看JavaScript中常見的內(nèi)存泄漏以及如何避免內(nèi)存泄漏
    2022-05-05
  • 微信小程序?qū)崿F(xiàn)滾動Tab選項卡

    微信小程序?qū)崿F(xiàn)滾動Tab選項卡

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)滾動Tab選項卡,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • JavaScript使用indexOf()實現(xiàn)數(shù)組去重的方法分析

    JavaScript使用indexOf()實現(xiàn)數(shù)組去重的方法分析

    這篇文章主要介紹了JavaScript使用indexOf()實現(xiàn)數(shù)組去重的方法,結(jié)合實例形式分析了使用indexOf()方法進行數(shù)組的判斷與去重相關(guān)原理與具體操作技巧,需要的朋友可以參考下
    2018-09-09
  • 小程序多圖列表實現(xiàn)性能優(yōu)化的方法步驟

    小程序多圖列表實現(xiàn)性能優(yōu)化的方法步驟

    這篇文章主要介紹了小程序多圖列表實現(xiàn)性能優(yōu)化的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 利用JS做網(wǎng)頁特效_大圖輪播(實例講解)

    利用JS做網(wǎng)頁特效_大圖輪播(實例講解)

    下面小編就為大家?guī)硪黄肑S做網(wǎng)頁特效_大圖輪播(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Bootstrap 模態(tài)框(Modal)帶參數(shù)傳值實例

    Bootstrap 模態(tài)框(Modal)帶參數(shù)傳值實例

    模態(tài)框(Modal)是覆蓋在父窗體上的子窗體。下面通過本文給大家介紹Bootstrap 模態(tài)框(Modal)帶參數(shù)傳值實例代碼,需要的朋友參考下吧
    2017-08-08
  • 詳解Javascript事件驅(qū)動編程

    詳解Javascript事件驅(qū)動編程

    這篇文章主要為大家詳細介紹了Javascript事件驅(qū)動編程的相關(guān)資料,通過經(jīng)典案例向大家介紹Javascript事件驅(qū)動編程,需要的朋友可以參考下
    2016-01-01
  • 一文了解你不知道的JavaScript閉包篇

    一文了解你不知道的JavaScript閉包篇

    這篇文章主要為大家詳細介紹了一些你不知道的JavaScript閉包相關(guān)知識,文中的示例代碼講解詳細,對我們學(xué)習(xí)JavaScript有一定幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11
  • 微信小程序如何自定義table組件

    微信小程序如何自定義table組件

    這篇文章主要介紹了微信小程序如何自定義table組件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-06-06
  • js 獲取后臺的字段 改變 checkbox的被選中的狀態(tài) 代碼

    js 獲取后臺的字段 改變 checkbox的被選中的狀態(tài) 代碼

    js 獲取后臺的字段 改變 checkbox的被選中的狀態(tài) 代碼,需要的朋友可以參考一下
    2013-06-06

最新評論