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常见注意事项
Jan 01 Javascript
ie 调试javascript的工具
Apr 29 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
Nov 18 Javascript
文本框文本自动补全效果示例分享
Jan 19 Javascript
node.js中的fs.fchown方法使用说明
Dec 16 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
Apr 03 Javascript
JavaScript中for循环的使用详解
Jun 03 Javascript
node模块机制与异步处理详解
Mar 13 Javascript
JavaScript实现简单的拖动效果
Jul 02 Javascript
jQuery.form.js的使用详解
Jun 14 jQuery
浅谈JS函数节流防抖
Oct 18 Javascript
搭建element-ui的Vue前端工程操作实例
Feb 23 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&amp;mysql(二)
2006/10/09 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
php多文件上传实现代码
2014/02/20 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
javascript常用功能汇总
2015/07/05 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python 的 with 语句详解
2014/06/13 Python
零基础学Python(一)Python环境安装
2014/08/20 Python
Python中if __name__ == &quot;__main__&quot;详细解释
2014/10/21 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python 发送get请求接口详解
2020/11/17 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
行政部主管岗位职责
2013/12/28 职场文书
《小石潭记》教学反思
2014/02/13 职场文书
公证书样本
2014/04/10 职场文书
单位在职证明书
2014/09/11 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
广播体操比赛主持词
2015/06/29 职场文书
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
idea下配置tomcat避坑详解
2022/04/12 Servers
Python四款GUI图形界面库介绍
2022/06/05 Python