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 相关文章推荐
javascript与CSS复习(《精通javascript》)
Jun 29 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
基于jquery的可多选的下拉列表框
Jul 20 Javascript
Javascript中的String对象详谈
Mar 03 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
May 10 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
Sep 08 Javascript
利用JS提交表单的几种方法和验证(必看篇)
Sep 17 Javascript
vue.js学习之递归组件
Dec 13 Javascript
layui的表单提交以及验证和修改弹框的实例
Sep 09 Javascript
Vue项目中如何使用Axios封装http请求详解
Oct 23 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
Jul 27 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中对缓冲区的控制实现代码
2013/09/29 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
php按单词截取字符串的方法
2015/04/07 PHP
php远程下载类分享
2016/04/13 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
js特殊字符过滤的示例代码
2014/03/05 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
结婚喜宴家长答谢词
2014/01/15 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
党员志愿者活动方案
2014/08/28 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers