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 相关文章推荐
基于jquery实现全屏滚动效果
Nov 26 Javascript
js轮播图代码分享
Jul 14 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
vue 怎么创建组件及组件使用方法
Jul 27 Javascript
详解JavaScript中的六种错误类型
Sep 21 Javascript
layui.js实现的表单验证功能示例
Nov 15 Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 Javascript
mocha的时序规则讲解
Feb 16 Javascript
react-native滑动吸顶效果的实现过程
Jun 03 Javascript
JS中实现一个下载进度条及播放进度条的代码
Jun 10 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
Aug 06 Javascript
vue使用echarts实现折线图
Mar 21 Vue.js
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与SQL注入攻击[三]
2007/04/17 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
分享XmlHttpRequest调用Webservice的一点心得
2012/07/20 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
js+css3实现炫酷时钟
2020/08/18 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
Python多线程的退出控制实现
2020/08/10 Python
Python创建自己的加密货币的示例
2021/03/01 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
英语专业毕业生自我鉴定
2013/11/09 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
2014年团支部工作总结
2014/11/17 职场文书
房屋质量投诉书
2015/07/02 职场文书
工作会议简报
2015/07/20 职场文书