JS实现简单的九宫格抽奖

 更新时间:2022年06月28日 16:43:18   作者:千北kk  
这篇文章主要为大家详细介绍了JS实现简单的九宫格抽奖,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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输入中文效果

    js输入中文效果

    js输入中文效果...
    2006-09-09
  • 安装Popper.js实现高效弹出内容管理实例代码

    安装Popper.js实现高效弹出内容管理实例代码

    Popper.js是轻量级库,用于创建动态工具提示、下拉菜单和弹出框,支持CDN和npm安装,这篇文章主要给大家介绍了关于安装Popper.js实现高效弹出内容管理的相关资料,需要的朋友可以参考下
    2025-06-06
  • 写给小白看的JavaScript异步

    写给小白看的JavaScript异步

    写给小白看的JavaScript异步,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 将CKfinder整合进CKEditor3.0的新方法

    将CKfinder整合进CKEditor3.0的新方法

    最新发布的CKFinder 1.4版 已经提供了对CKEditor3.0的支持
    2010-01-01
  • bootstrap css样式之表单

    bootstrap css样式之表单

    这篇文章主要为大家详细介绍了bootstrap css样式之表单的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • JavaScript实现随机数生成器(去重)

    JavaScript实现随机数生成器(去重)

    这篇文章主要为大家详细介绍了JavaScript实现随机数生成器,生成不重复的随机数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • javascript制作loading动画效果 loading效果

    javascript制作loading动画效果 loading效果

    项目中多处要给ajax提交的时候增加等待动画效果,所以就写了一个简单的通用js方法,大家参考使用吧
    2014-01-01
  • JS操作对象数组实现增删改查实例代码

    JS操作对象数组实现增删改查实例代码

    JS提供了很多方便操作数组的方法,这篇文章主要给大家介绍了关于JS操作对象数组实现增删改查的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • 简述JS中forEach()、map()、every()、some()和filter()的用法

    简述JS中forEach()、map()、every()、some()和filter()的用法

    JS中常常需要对数组进行遍历、迭代操作,而我们常用的就是for语句对数组进行迭代,下面这篇文章主要给大家介绍了关于JS中forEach()、map()、every()、some()和filter()的用法,需要的朋友可以参考下
    2022-05-05
  • 浅谈PDF.js使用心得

    浅谈PDF.js使用心得

    本篇文章主要介绍了浅谈PDF.js使用心得,pdf.js 是一个技术原型主要用于在 HTML5 平台上展示 PDF 文档,无需任何本地技术支持。非常具有实用价值,需要的朋友可以参考下
    2018-06-06

最新评论