JS实现简单的九宫格抽奖


Posted in Javascript onJune 28, 2022

本文实例为大家分享了JS实现简单九宫格抽奖的具体代码,供大家参考,具体内容如下

结构

<body>

    <div id="fa">
        <div class="option">1</div>
        <div class="option">5</div>
        <div class="option">3</div>
        <div class="option">4</div>
        <div id="start">开始抽奖</div>
        <div class="option">5</div>
        <div class="option">6</div>
        <div class="option">7</div>
        <div class="option">8</div>
    </div>
</body>

样式

<style>
        #fa {
            width: 600px;
            height: 600px;
            border: 1px solid red;

        }

        #fa>div {
            width: 33%;
            height: 33%;
            border: 1px solid red;
            float: left;
            line-height: 200px;
            text-align: center;//文本居中
            font-size: 40px;
            font-weight: 800;//加粗字体

        }

        #start {
            cursor: pointer;//使鼠标移入时出现小手图标
            background-color: pink;
        }
</style>

JS实现抽奖

逻辑分析:

1.点击中间的开始抽奖时触发一个定时器
2.触发定时器后,随机生成一个数字,通过这个数字来获取当前所在元素
3.设置一个时间来结束定时器,结束抽奖

<script>
         let btn = document.getElementById('start');//获取到开始抽奖按钮
        let options = document.getElementsByClassName('option');//获取到8个奖区
        let timer =null;//防止定时器多次触发,初始值设为null

        //为btn绑定一个单击事件
        btn.onclick = function () {
            //设置一个初始值 作为时间判断
            let num = 0;
            
            if (timer == null) {
                //触发一个定时器
               timer = setInterval(function () {

                    num++;

                     //随机产生一个0 - 7 的数字 通过该数字作为数组的下标来获取到div
                    let ran = Math.round(Math.random() * (7 - 0) + 0);
                    //round是因为Math.random() * (7 - 0) + 0)取出的随机数是含小数的一串数字,所以需要取整
                    
                    //改变选中的元素背景颜色之前,将所有元素的背景颜色恢复
                    for (let i = 0; i < options.length; i++) {
                        options[i].style.backgroundColor = '';
                    }

                    //给选中的元素设置一个背景颜色
                    options[ran].style.backgroundColor = 'tomato';

                    //给定时器一个时间,到时间停止定时器
                    if(num == 5){
                        clearInterval(timer)
                    }

                }, 1000)
            }

        }
</script>

效果

JS实现简单的九宫格抽奖

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。


Tags in this post...

Javascript 相关文章推荐
学习YUI.Ext基础第一天
Mar 10 Javascript
javascript:void(0)的真正含义实例分析
Aug 20 Javascript
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
Javascript之String对象详解
Jun 08 Javascript
微信小程序 PHP生成带参数二维码
Feb 21 Javascript
使用vue构建移动应用实战代码
Aug 02 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
May 01 Javascript
webpack4简单入门实例
Sep 06 Javascript
vue中使用微信公众号js-sdk踩坑记录
Mar 29 Javascript
JS实现九宫格拼图游戏
JavaScript实现九宫格拖拽效果
JS实现简单九宫格抽奖
Jun 28 #Javascript
Vite + React从零开始搭建一个开源组件库
Jun 25 #Javascript
React自定义hook的方法
Jun 25 #Javascript
小程序实现侧滑删除功能
Jun 25 #Javascript
小程序自定义轮播图圆点组件
Jun 25 #Javascript
You might like
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
php实现每日签到功能
2018/11/29 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
js实现密码强度检验
2017/01/15 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
python数据结构树和二叉树简介
2014/04/29 Python
python实现神经网络感知器算法
2017/12/20 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
《七颗钻石》教学反思
2014/02/28 职场文书
初三开学计划书
2014/04/27 职场文书
学习礼仪心得体会
2014/09/01 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
初婚初育证明范本
2014/11/24 职场文书
2015学校年度工作总结
2015/05/11 职场文书
Python基础之Socket通信原理
2021/04/22 Python
python Django框架快速入门教程(后台管理)
2021/07/21 Python
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技