JS九宫格抽奖制作

简介: JS九宫格抽奖制作

1.先写好html 页面要呈现的内容。

HTML内容如下:

<div class="Sudoku">
      <div class="one">口红</div>
      <div class="two">耳机</div>
      <div class="three">衣服</div>
      <div class="four">华为p60</div>
      <div class="five">键盘</div>
      <div class="six">美甲</div>
      <div class="seven">苹果15</div>
      <div class="eight">蛋糕</div>
      <button class="click" id="clicks">点击抽奖</button>
    </div>

2.然后使用CSS样式给内容添加颜色大小做好定位。

CSS样式如下:

<style>
      .Sudoku {
        width: 380px;
        height: 380px;
        position: relative;
      }
 
      .click {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        margin: 20px;
        background-color: #aaff7f;
        position: absolute;
        margin-top: 140px;
        margin-left: 140px;
      }
 
      .one {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        background-color: mistyrose;
        position: absolute;
        margin: 20px;
      }
 
      .two {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        background-color: mistyrose;
        position: absolute;
        margin-left: 140px;
        margin-top: 20px;
      }
 
      .three {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        background-color: mistyrose;
        position: absolute;
        margin-left: 260px;
        margin-top: 20px;
      }
 
      .four {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        background-color: mistyrose;
        position: absolute;
        margin-left: 260px;
        margin-top: 140px;
      }
 
      .five {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        background-color: mistyrose;
        position: absolute;
        margin-left: 260px;
        margin-top: 260px;
      }
 
      .six {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        background-color: mistyrose;
        position: absolute;
        margin-left: 140px;
        margin-top: 260px;
      }
 
      .seven {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        background-color: mistyrose;
        position: absolute;
        margin-left: 20px;
        margin-top: 260px;
      }
 
      .eight {
        width: 100px;
        height: 100px;
        text-align: center;
        line-height: 100px;
        background-color: mistyrose;
        position: absolute;
        margin-left: 20px;
        margin-top: 140px;
      }
    </style>

JS代码如下:

<script>
      
      let clicks = document.getElementById('clicks');
      
      let Sudoku = document.getElementsByClassName('Sudoku')[0];
      let prizes = Sudoku.getElementsByTagName('div');
      console.log(prizes);
      
      let i = 0;
      
      let speed = 0;
      
      let time = 500;
      let inter;
      let num;
      
      clicks.onclick = asbo;
      function asbo() {
        prizes[i].style.backgroundColor = '#d6c5ff';
        inter = setInterval(rotates, time);
        num = Math.floor(Math.random() * prizes.length);
        console.log(num);
        clicks.onclick = null;
      }
 
      function rotates() {
        if (i < prizes.length - 1) {
          i++;
          prizes[i].style.backgroundColor = '#d6c5ff';
          prizes[i - 1].style.backgroundColor = '#FFE4E1';
          console.log(time);
        } else {
          i = 0;
          prizes[i].style.backgroundColor = '#d6c5ff';
          prizes[prizes.length - 1].style.backgroundColor = '#FFE4E1';
          speed++;
          console.log(speed);
        }
        if (speed < 2) {
          time -= 100;
          if (time < 100) {
            time = 100
          }
        } else if (speed > 4) {
          time += 70;
          if (time > 1000) {
            time = 1000;
          }
 
        }
        if (i == num && speed > 5) {
          clearInterval(inter);
          setTimeout(function() {
            alert("恭喜获得" + prizes[i].innerHTML);
            speed = 0;
            clicks.onclick = asbo;
          }, 300);
        } else {
          clearInterval(inter);
          inter = setInterval(rotates, time);
        }
      }
    </script>
目录
相关文章
|
4月前
|
移动开发 JavaScript 前端开发
分享46个JS抽奖转盘,总有一款适合您
分享46个JS抽奖转盘,总有一款适合您
144 1
|
4月前
|
JavaScript 前端开发
js制作九宫格抽奖功能
js制作九宫格抽奖功能
44 0
|
4月前
|
存储 JavaScript 前端开发
JS实现简单的九宫格抽奖攻略
JS实现简单的九宫格抽奖攻略
57 0
|
4月前
|
JavaScript 前端开发
|
1月前
|
JavaScript
js之九宫格抽奖
js之九宫格抽奖
26 0
|
3月前
|
JavaScript 前端开发
JS九宫格抽奖
JS九宫格抽奖
|
4月前
|
JavaScript 计算机视觉
原生js通过年龄判断是否可以抽奖
原生js通过年龄判断是否可以抽奖
28 0
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
73 2
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
65 4
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
58 4