上代码: 

1.index.wxml

<view class="container-out">

  <view class="circle" wx:for="{{circleList}}" style="top:{{item.topCircle}}rpx;left:{{item.leftCircle}}rpx;background-color: {{(index%2==0)?colorCircleFirst:colorCircleSecond}};"></view>

  <view class="container-in">

    <view class="content-out" wx:for="{{awardList}}" style="top:{{item.topAward}}rpx;left:{{item.leftAward}}rpx;background-color: {{(index==indexSelect)?colorAwardSelect:colorAwardDefault}};">

      <image class="award-image" src="{{item.imageAward}}"></image>

    </view>

    <view class="start-btn" bindtap="startGame" style=" background-color:{{isRunning?'#e7930a':'#ffe400'}}">START</view>

  </view>

</view>

2.index.wxss

.container-out {

  height: 600rpx;

  width: 650rpx;

  background-color: #b136b9;

  margin: 100rpx auto;

  border-radius: 40rpx;

  box-shadow: 0 10px 0 #871a8e;

  position: relative;

}

.container-in {

  width: 580rpx;

  height: 530rpx;

  background-color: #871a8e;

  border-radius: 40rpx;

  position: absolute;

  left: 0;

  right: 0;

  top: 0;

  bottom: 0;

  margin: auto;

}

/**小圆球

box-shadow: inset 3px 3px 3px #fff2af;*/

.circle {

  position: absolute;

  display: block;

  border-radius: 50%;

  height: 20rpx;

  width: 20rpx;

}

.content-out {

  position: absolute;

  height: 150rpx;

  width: 166.6666rpx;

  background-color: #f5f0fc;

  border-radius: 15rpx;

  box-shadow: 0 5px 0 #d87fde;

}

/**居中 加粗*/

.start-btn {

  position: absolute;

  margin: auto;

  top: 0;

  left: 0;

  bottom: 0;

  right: 0;

  border-radius: 15rpx;

  height: 150rpx;

  width: 166.6666rpx;

  background-color: #ffe400;

  box-shadow: 0 5px 0 #e7930a;

  color: #f6251e;

  text-align: center;

  font-size: 55rpx;

  font-weight: bolder;

  line-height: 150rpx;

}

.award-image {

  position: absolute;

  margin: auto;

  top: 0;

  left: 0;

  bottom: 0;

  right: 0;

  height: 140rpx;

  width: 130rpx;

}

3.index.js

Page({

  data: {

    circleList: [],//圆点数组

    awardList: [],//奖品数组

    colorCircleFirst: '#FFDF2F',//圆点颜色1

    colorCircleSecond: '#FE4D32',//圆点颜色2

    colorAwardDefault: '#F5F0FC',//奖品默认颜色

    colorAwardSelect: '#ffe400',//奖品选中颜色

    indexSelect: 0,//被选中的奖品index

    isRunning: false,//是否正在抽奖

    imageAward: [

      '../../images/1.jpg',

      '../../images/2.jpg',

      '../../images/3.jpg',

      '../../images/4.jpg',

      '../../images/5.jpg',

      '../../images/6.jpg',

      '../../images/7.jpg',

      '../../images/8.jpg',

    ],//奖品图片数组

  },

  onLoad: function () {

    var _this = this;

    //圆点设置

    var leftCircle = 7.5;

    var topCircle = 7.5;

    var circleList = [];

    for (var i = 0; i < 24; i++) {

      if (i == 0) {

        topCircle = 15;

        leftCircle = 15;

      } else if (i < 6) {

        topCircle = 7.5;

        leftCircle = leftCircle + 102.5;

      } else if (i == 6) {

        topCircle = 15

        leftCircle = 620;

      } else if (i < 12) {

        topCircle = topCircle + 94;

        leftCircle = 620;

      } else if (i == 12) {

        topCircle = 565;

        leftCircle = 620;

      } else if (i < 18) {

        topCircle = 570;

        leftCircle = leftCircle - 102.5;

      } else if (i == 18) {

        topCircle = 565;

        leftCircle = 15;

      } else if (i < 24) {

        topCircle = topCircle - 94;

        leftCircle = 7.5;

      } else {

        return

      }

      circleList.push({ topCircle: topCircle, leftCircle: leftCircle });

    }

    this.setData({

      circleList: circleList

    })

    //圆点闪烁

    setInterval(function () {

      if (_this.data.colorCircleFirst == '#FFDF2F') {

        _this.setData({

          colorCircleFirst: '#FE4D32',

          colorCircleSecond: '#FFDF2F',

        })

      } else {

        _this.setData({

          colorCircleFirst: '#FFDF2F',

          colorCircleSecond: '#FE4D32',

        })

      }

    }, 500)

    //奖品item设置

    var awardList = [];

    //间距,怎么顺眼怎么设置吧.

    var topAward = 25;

    var leftAward = 25;

    for (var j = 0; j < 8; j++) {

      if (j == 0) {

        topAward = 25;

        leftAward = 25;

      } else if (j < 3) {

        topAward = topAward;

        //166.6666是宽.15是间距.下同

        leftAward = leftAward + 166.6666 + 15;

      } else if (j < 5) {

        leftAward = leftAward;

        //150是高,15是间距,下同

        topAward = topAward + 150 + 15;

      } else if (j < 7) {

        leftAward = leftAward - 166.6666 - 15;

        topAward = topAward;

      } else if (j < 8) {

        leftAward = leftAward;

        topAward = topAward - 150 - 15;

      }

      var imageAward = this.data.imageAward[j];

      awardList.push({ topAward: topAward, leftAward: leftAward, imageAward: imageAward });

    }

    this.setData({

      awardList: awardList

    })

  },

  //开始游戏

  startGame: function () {

    if (this.data.isRunning) return

    this.setData({

      isRunning: true

    })

    var _this = this;

    var indexSelect = 0

    var i = 0;

    var timer = setInterval(function () {

      indexSelect++;

      //这里我只是简单粗暴用y=30*x+200函数做的处理.可根据自己的需求改变转盘速度

      i += 30;

      if (i > 1000) {

        //去除循环

        clearInterval(timer)

        //获奖提示

        wx.showModal({

          title: '恭喜您',

          content: '获得了第' + (_this.data.indexSelect + 1) + "个优惠券",

          showCancel: false,//去掉取消按钮

          success: function (res) {

            if (res.confirm) {

              _this.setData({

                isRunning: false

              })

            }

          }

        })

      }

      indexSelect = indexSelect % 8;

      _this.setData({

        indexSelect: indexSelect

      })

    }, (200 + i))

  }

})

感兴趣的小伙伴赶紧去试试吧

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

大中专招生方法二:机器人电话外呼(ai外呼)人工智能外呼系统(含机器人话术模板)|大中专招生方法,机器人外呼,人工智能电话外呼,大专招生方法,中专招生方法,学校招生方法,中职招生方法,机器人话术模板,大中专,招生,方法,机器人,电话,外呼,ai外呼,人工智能,系统,机器,人话,模板
大中专招生方法二:机器人电话外呼(ai外呼)人工智能外呼系统(含机器人话术模板)

历史上的今天:04月28日

如果30号晚上高速,1号凌晨下高速免费不?跨省的必须看

如果30号晚上高速,1号凌晨下高速免费不?跨省的必须看长假马上就要到了,这是大家问得最多的问题!今天就跟大家好好说道,上高速,这样才算免费!先来看下2017年中秋国庆高速公路免费时间:10月1日零点~10月8日24点。免收通行费时间以车辆驶离高速公路出口收费车道的时间为准。普通公路则以车辆通过收费站收费车道的时间为准。换言之,收费期间上高速公路,免费期间下高速公路,不会被收费。所以,如果30号晚上

高速免费!五一放假调休共5天,能跨省出行吗?

高速免费!五一放假调休共5天,能跨省出行吗?据《国务院办公厅关于2022年部分节假日安排的通知》,2022五一放假为:4月30日至5月4日放假调休,共5天。4月24日(星期日)、5月7日(星期六)上班。同时据国家《重大节假日免收小型客车通行费实施方案》规定,高速公路对小型客车(7座以下含7座载客车辆)免费的节日有春节、清明节、五一劳动节、国庆节。因此,在4月30日0时至5月4日24时,高速公路将免

高速公路免费时间?收费卡怎么办?跨省呢?

高速公路免费时间?收费卡怎么办?跨省呢?马上就要到国庆假期啦,这几天小编每天都收到很多关于高速免费的问题,除了大家最关心的免费时间、免费车型等等,小编今天也总结了一些干货,快来看吧~免费时间这是老生常谈了,今年国庆免费时间为10月1日0时至7日24时。免费通行的计费时间点,是以汽车驶出高速的时间点为准。 在非免费时段进入高速公路,但出高速的时候是

明确了!免费5天!

明确了!免费5天!近日交通运输部印发通知要求严格落实重大节假日免收小型客车通行费政策强化电子不停车收费(ETC)车道运行监测及时处置异常情况“五一”劳动节期间高速免费通行根据交通运输部发布的文件《重大节假日免收小型客车通行费实施方案》针对春节、清明节劳动节、国庆节四个重要节假日实施7座(包括7座)以下小型客车高速公路免费通行的政策免费时间4月29日00:00至5月3日24:00免费时段这样算普通收

热门专题

云南高职单招|云南单招,云南单招网,云南高职单招网,云南高职单招,云南单招学校,云南单招培训
云南高职单招
APP开发|app开发_app开发公司_app软件开发_专业app开发_云南app开发公司_app定制_原生app开发定制
APP开发
开放大学|开放大学报名,开放大学报考,开放大学,什么是开放大学,开放大学学历,开放大学学费,开放大学报名条件,开放大学报名时间,开放大学学历,开放大学专业
开放大学
大理科技管理学校|大理科技管理学校,大理科技,大理科技中等职业技术学校,大理科技管理中等职业技术学校,大理科技学校
大理科技管理学校
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
天麻的功效与作用吃法|天麻的功效与作用,天麻的功效与作用吃法,天麻炖什么治头痛最好,天麻的功效与作用禁忌,天麻多少钱一斤,天麻的功效与作用吃法及禁忌,天麻怎么吃效果最好,天麻粉的功效与作用,天麻怎么吃
天麻的功效与作用吃法
弥勒综合高中|弥勒综合高中
弥勒综合高中
一年制中专|中专学历,中专是什么学历,中专是什么,中专有什么专业,中专升大专,一年制中专
一年制中专

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部