iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >微信小程序如何实现走马灯式抽奖
  • 883
分享到

微信小程序如何实现走马灯式抽奖

2023-06-30 03:06:09 883人浏览 安东尼
摘要

今天小编给大家分享一下微信小程序如何实现走马灯式抽奖的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。先来看下效果设置奖项awa

今天小编给大家分享一下微信小程序如何实现走马灯式抽奖的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

先来看下效果

微信小程序如何实现走马灯式抽奖

设置奖项

awardList是从后台拿到的奖项数组,list不够八位时填充谢谢参与奖项,超过八位时截取数组,然后随机打乱数组,保证奖项随机布局,第四位固定填充立即抽奖按钮

// 设置奖项  settingAward(awardList) {    const len = awardList.length;    const award = {      awardName: '谢谢参与',      awardMoney: 0,      awardType: '00',      awardCode: ''    };    let _awardList = [];    if (len < 8) {      for (let i = 0; i < 8 - len; i++) {        awardList.push(JSON.parse(jsON.stringify(award)));      }      this.randArr(awardList);      _awardList = awardList;      console.log(_awardList)    } else if (awardList.length == 8) _awardList = awardList;    else {      _awardList = awardList.splice(0, 9);    }    _awardList.splice(4, 0, {      awardName: '立即抽奖'    })    return _awardList;  },  // 随机打乱奖项  randArr(arr) {    for (var i = 0; i < arr.length; i++) {      var iRand = parseInt(arr.length * Math.random());      var temp = arr[i];      arr[i] = arr[iRand];      arr[iRand] = temp;    }    return arr;  }

布局

主要用了flex布局,遍历奖品list,index==4时渲染立即抽奖按钮,否则渲染奖项

<view class="content">      <view wx:for="{{awardList}}">        <view wx:if="{{index == 4}}" class="award">          <view wx:if="{{activityCount > 0}}" class="btn {{lucking ? 'lucking' : 'lucked'}}">            <text class="btn_text" catchtap="startLuck">{{item.awardName}}</text>          </view>          <view wx:else class="btn lucking">            <text class="btn_text">{{item.awardName}}</text>          </view>        </view>        <view wx:else class="award {{currentIndex == index ? 'selected' : 'unselected'}}">          <block wx:if="{{item.awardType == '00'}}">            <view class="option">              <image src="../../img/noluck_icon.png"></image>            </view>            <view class="txt">{{item.awardName}}</view>          </block>          <block wx:elif="{{item.awardType == '07'}}">            <view class="option">              <image src="../../img/mianxi_icon.png"></image>            </view>            <view class="txt">{{item.awardName}}</view>          </block>          <block wx:else>            <view class="option">              <image src="../../img/turntable_redpacket.png"></image>              <text class="price">{{util.fORMatMoney(item.awardMoney)}}</text>            </view>            <view class="txt">{{item.awardName}}</view>          </block>        </view>      </view></view>

抽奖逻辑

开始抽奖时默认选中第一个,初始化idArr为currentIndex的索引,即下一个奖项在哪激活
记录圈数let cycles = 0;
开始设置interval = setInterval(frame, 100);
index == 8时轮询了一圈,cycles加一
当cycles > 2时减速定时器interval = setInterval(frame, 300);
当抽奖接口有结果且转了三圈后跳到获奖位置,清除定时器并弹出获奖结果弹窗

// 开始抽奖  startLuck() {      const idArr = [0, 1, 2, 5, 8, 7, 6, 3];    let cycles = 0;    let that = this;    let _awardList = this.data.awardList;    let index = this.data.currentIndex;    let activityCount = this.data.activityCount - 1;    var interval = setInterval(frame, 100);    this.setData({      lucking: true,      activityCount    })    let pending = true;    post('122201.app', {      duration: 2000,      activityCode: this.data.activityCode    }, {      isMarket: true    }).then(res => {      pending = false;      this.setData({        awardResult: {          awardCode: "",          ...res        }      })    }).catch(err => {      clearInterval(interval);      pending = false;      activityCount += 1;      this.setData({        activityCount,        lucking: false,      })    })    function frame() {      if (!pending) {        // 转三圈后跳到获奖位置        if (cycles > 3) {          if (_awardList[that.data.currentIndex].awardCode == that.data.awardResult.awardCode) {            clearInterval(interval);            that.setData({              lucking: false,              showModal: true            })            return;          }        }      }      if (index == 8) {        index = 0;        if (!pending) {          // 两圈后转盘减速          if (cycles++ > 1) {            clearInterval(interval);            interval = setInterval(frame, 300);          }        }      }      // 设置奖项跳到对应位置      that.setData({        currentIndex: idArr[index++]      })    }  },

wxss

.turntable .content {  width: 568rpx;  height: 568rpx;  background: #F48002;  border-radius: 20px;  position: absolute;  top: 90rpx;  left: 30rpx;  display: flex;  flex-wrap: wrap;  justify-content: space-around;  align-items: center;  padding: 10rpx;  box-sizing: border-box;}.turntable .content .award {  width: 174rpx;  height: 174rpx;  background: #FFFFFF;  border-radius: 20rpx;  display: flex;  flex-direction: column;  justify-content: center;  align-items: center;}

以上就是“微信小程序如何实现走马灯式抽奖”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: 微信小程序如何实现走马灯式抽奖

本文链接: https://www.lsjlt.com/news/327266.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序实现走马灯式抽奖
    本文实例为大家分享了微信小程序实现走马灯式抽奖的具体代码,供大家参考,具体内容如下 先来看下效果 设置奖项 awardList是从后台拿到的奖项数组,list不够八位时填充谢谢参与...
    99+
    2022-11-13
  • 微信小程序如何实现走马灯式抽奖
    今天小编给大家分享一下微信小程序如何实现走马灯式抽奖的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。先来看下效果设置奖项awa...
    99+
    2023-06-30
  • 微信小程序实现走马灯效果实例
    前言 日常开发中,我们经常会遇到文字横向循环滚动的效果,俗称走马灯,也是项目中经常会使用的一个功能。在网页web前端很常见,今天就介绍下小程序的实现方式,一种是用的css样式实现,另...
    99+
    2022-11-11
  • 微信小程序实现简单九宫格抽奖
    本文实例为大家分享了微信小程序实现简单九宫格抽奖的具体代码,供大家参考,具体内容如下 废话不多说,先上样板图 代码就先wxml文件: <view id="container"...
    99+
    2022-11-13
  • 微信小程序转盘抽奖的实现方法
    本文实例为大家分享了微信小程序实现转盘抽奖的具体代码,供大家参考,具体内容如下 lucky-draw.wxss: .lucky_draw_zp{ width: 502rpx; hei...
    99+
    2022-11-13
  • 微信小程序怎么实现抽奖大转盘
    这篇“微信小程序怎么实现抽奖大转盘”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序怎么实现抽奖大转盘”文章吧。界面就...
    99+
    2023-06-26
  • 微信抽奖小程序类似翻牌样式如何做
    这篇文章主要介绍了微信抽奖小程序类似翻牌样式如何做的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信抽奖小程序类似翻牌样式如何做文章都会有所收获,下面我们一起来看看吧。翻牌打乱活动抽奖活动,大概需求是这样的,九...
    99+
    2023-06-26
  • 小程序如何实现筛子抽奖
    这篇文章主要介绍小程序如何实现筛子抽奖,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例为大家分享了小程序实现筛子抽奖的具体代码,供大家参考,具体内容如下效果图<!--pages/shaizi/index....
    99+
    2023-06-15
  • 微信小程序中如何使用css3动画实现扭蛋抽奖机
    这篇文章主要介绍了微信小程序中如何使用css3动画实现扭蛋抽奖机,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果图wxml文件:<v...
    99+
    2022-10-19
  • 微信小程序实现轮播图标题跑马灯
    本文实例为大家分享了微信小程序实现轮播图标题跑马灯的具体代码,供大家参考,具体内容如下 微信小程序做轮播图,轮播图下的标题如果不长不需要跑马灯效果,过长的无法显示全的则添加跑马灯效果...
    99+
    2022-11-13
  • 微信小程序怎么实现轮播图标题跑马灯
    这篇“微信小程序怎么实现轮播图标题跑马灯”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序怎么实现轮播图标题跑马灯”文...
    99+
    2023-07-02
  • 小程序如何实现跑马灯效果
    这篇“小程序如何实现跑马灯效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“小程序如何实现跑马灯效果”文章吧。先看效果图实现...
    99+
    2023-07-02
  • 如何使用PHP实现微信小程序的任务奖励功能?
    如何使用PHP实现微信小程序的任务奖励功能?微信小程序作为一种新型的应用开发平台,越来越受到开发者的关注和使用。在开发微信小程序中,任务奖励功能是很常见的需求之一。用户完成指定任务后,开发者通过给用户发放奖励的形式来提高用户参与度和活跃度。...
    99+
    2023-10-26
    小程序开发 PHP实现微信小程序 任务奖励功能
  • 微信小程序中如何实现微信支付
    微信支付是微信公众平台提供的一种在线支付服务,可以为用户提供快速、方便、安全的支付体验。而在微信小程序中实现微信支付,则可以为应用程序提供更多的功能和服务,提高用户体验和商业价值。因此,在本文中,我们将介绍如何在微信小程序中实现微信支付。 ...
    99+
    2023-08-16
    微信小程序 微信 小程序 前端 javascript
  • 微信小程序如何实现slider
    这篇文章给大家分享的是有关微信小程序如何实现slider的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实现效果图:滑动选择器属性名类型默认值说明minNumber0最小值maxN...
    99+
    2022-10-19
  • 微信小程序如何实现tabBar
    这篇文章主要介绍了微信小程序如何实现tabBar,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:1、效果展示2、原理:在app.js...
    99+
    2022-10-19
  • 微信小程序如何实现收缩式菜单
    这篇“微信小程序如何实现收缩式菜单”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序如何实现收缩式菜单”文章吧。wxm...
    99+
    2023-07-02
  • 微信小程序如何实现登录
    这篇文章主要为大家展示了“微信小程序如何实现登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何实现登录”这篇文章吧。微信小程序 实现登录最近一段时...
    99+
    2022-10-19
  • 微信小程序如何实现蓝牙
    这篇文章给大家分享的是有关微信小程序如何实现蓝牙的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序 蓝牙的实现实例代码1.简述蓝牙适配器接口是基础库版本 1.1.0 开始支...
    99+
    2022-10-19
  • 微信小程序如何实现翻牌小游戏
    这篇文章主要介绍了微信小程序如何实现翻牌小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下一、新建一个quick start项...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作