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 相关文章推荐
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
Oct 20 Javascript
Javascript 面向对象编程(一) 封装
Aug 28 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
Nov 13 Javascript
Node.js实现Excel转JSON
Apr 24 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
Mar 11 Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
Sep 04 Javascript
利用Vue.js实现checkbox的全选反选效果
Jan 18 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
Feb 21 Javascript
JavaScript怎样在删除前添加确认弹出框?
May 27 Javascript
layui实现多图片上传并限制上传的图片数量
Sep 26 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
Jan 06 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
PHP之变量、常量学习笔记
2008/03/27 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
jQuery拖动图片删除示例
2013/05/10 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
javascript回调函数详解
2018/02/06 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
浅析python打包工具distutils、setuptools
2018/04/20 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
python安装requests库的实例代码
2019/06/25 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
Python换行与不换行的输出实例
2020/02/19 Python
什么是Python变量作用域
2020/06/03 Python
Python基于execjs运行js过程解析
2020/11/27 Python
应届专科生个人的自我评价
2014/01/05 职场文书
二年级小学生评语
2014/04/21 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
Django路由层如何获取正确的url
2021/07/15 Python