效果上图

js代码


```javascript
//每个单元格
var divnum=document.getElementsByClassName("num");
//开始按钮
var startbtn=document.getElementById("start");
//随机的停止位(整数)
var stopPosition =Math.floor(Math.random()*8+1);
//装单元格的数组
var divList =[];
//装索引的数组
var indexList=[0, 1, 2, 5, 8, 7, 6, 3]//0 1 2 5 8 7 6 3 抽奖顺序for(let  i=0;i<divnum.length;i++){divList.push(divnum[indexList[i]]);
}// 转多少圈停止var roundNum=0;//当前位置var currentIndex=0;
//抽奖运动变色
function animation(index){divList[index].style.background="red";//选择当前的,把上一个初始化if(index==0){divList[7].style.background="#fff";}else{divList[index-1].style.background="#fff";}return
}//点击事件
startbtn.onclick=function(){//初始化for(let i=0;i<divList.length-1;i++){divList[i].style.background="#fff";}stopPosition =Math.floor(Math.random()*8+1);startbtn.innerText="抽奖中...";speedFun(500);
//加速器
function speedFun(speed){//圈数没有结束if (roundNum!=50){//速度没有达到最大if (speed!=100){speed-=50;}roundNum++;}else{if(speed!=500){speed+=50;}else{if(currentIndex==stopPosition){//tingstopLuck();return}}}//当前位置
currentIndex=currentIndex>7?0:currentIndex;
animation(currentIndex);
currentIndex++;
setTimeout( function(){speedFun(speed)
},speed)
}}
//停止抽奖
function stopLuck(){startbtn.innerText="抽奖";}

注意点:
1:九个格子 index依次为0-8 ,变红的的为顺序为0 1 2 5 8 7 6 3


2:注意divList各个index值  否则不能找不到style报错。

用js写一个九宫格抽奖相关推荐

  1. JS写一个图片抽奖机

    1 首先把静态页面代码完成 <div class="box"><div class="box01"><div class=&quo ...

  2. ivx平台开发——不用代码实现一个九宫格抽奖

    原创公众号:bigsai 前言 上次说过在看一些关于0代码开发平台ivx,前一段时间忙完考试最近跟着教程0代码实现一个九宫格抽奖,哈哈哈感觉还是蛮强大的,懂点的人都知道可视化这个东西我们正常都是用一些 ...

  3. 【Part2】用JS写一个Blog (node + vue + mongoDB)

    [Part1]用JS写一个Blog (node + vue + mongoDB) 上一节前后端项目分别初始化完成,这一小节我就从后端项目开始写.实现mongoDB数据库的连接. 整理后端目录 下面是通 ...

  4. [js] 用js写一个方法检测浏览器是否支持css3的属性

    [js] 用js写一个方法检测浏览器是否支持css3的属性 var div = document.createElement('div'); console.log(div.style.transit ...

  5. [js] 写一个方法获取图片的方向

    [js] 写一个方法获取图片的方向 <!DOCTYPE html> <html> <head><meta charset="utf-8"& ...

  6. [js] 写一个获取页面中所有checkbox的方法

    [js] 写一个获取页面中所有checkbox的方法 function getAllCheckbox() {return [...document.querySelectorAll('input[ty ...

  7. [js]写一个获取非行间样式的方法

    [js]写一个获取非行间样式的方法 window.getComputedStyle()?window.getComputedStyle(element).attribute:element.curre ...

  8. [js] 写一个方法遍历指定对象的所有属性

    [js] 写一个方法遍历指定对象的所有属性 Object.keys().Object.values()只能遍历对象自有的属性,for in 可以遍历原型中的属性. 个人简介 我是歌谣,欢迎和大家一起交 ...

  9. [js] 写一个方法,实时验证input输入的值是否满足金额如:3.56(最多只有两位小数且只能数字和小数点)的格式,其它特殊字符禁止输入

    [js] 写一个方法,实时验证input输入的值是否满足金额如:3.56(最多只有两位小数且只能数字和小数点)的格式,其它特殊字符禁止输入 <body><input type=&qu ...

最新文章

  1. DFS template and summary
  2. 怎么修改gif图片中的文字[实用]
  3. iOS 与OS X多线程和内存管理 笔记 ARC与所有权修饰符
  4. it is likely that the remote side declared peer gone on this jvm
  5. 图卷积神经网络_深度层次化图卷积神经网络
  6. 黄老师离开呆了十年的上海
  7. 史上最壕无人车买家诞生!泥潭中的Uber要搞个超大的无人出租车队
  8. IPv4正则表达式匹配
  9. python生成颜色数组
  10. 计算机网络谢希仁课后答案第七版答案完整版
  11. 安装netbeans步骤
  12. 汽车使用总结(七)--侧方停车
  13. html图片闪现循环效果,CSS3 图片的模糊闪烁动画
  14. hadoop学习之azkaban(5.1):azkaban的使用及示例 标签: 任务调度hadoopazkaban脚本
  15. ssms mysql_SQL Server Management Studio(SSMS)复制数据库的方法
  16. Linux系统编程—进程间通信—共享内存
  17. Linux环境使用授权码实现软件授权
  18. XDOJ32角谷定理
  19. 使用unity的mesh绘制三菱柱的碰撞体(3d三角形)
  20. .net core npoi word文字下划线

热门文章

  1. 互联网时代的改变,零食品牌崛起,传统零食产业如何“逆袭”?
  2. Android 仿知乎创意广告 广告还能这么玩?
  3. c# 未能加载文件或程序集mysql.data,c# - 当我未引用文件或程序集Oracle.ManageddataAccess时,它无法加载 - 堆栈内存溢出...
  4. Oracle 物化视图详解(materialized)
  5. 360奇安信和SonarQube漏洞及bug修改
  6. 全程pwm调光_请问PWM调光是从哪一年开始使用的?
  7. 云栖干货回顾 |“顶级玩家”集结!分布式数据库专场精华解读
  8. linux通过什么命令查看中断,查看linux 中断
  9. [转]聚类算法实践(1)—— 层次、K-means聚类
  10. 计算机博士留校好还是去企业好,博士毕业,是进入知名国企发展好,还是进入大学当老师更好?...