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 相关文章推荐
js 表单验证方法(实用)
Apr 28 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
jQuery中:first-child选择器用法实例
Dec 31 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
Jul 10 Javascript
jquery ajaxfileupload异步上传插件
Nov 21 jQuery
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
Jul 04 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
Sep 11 Javascript
layui 对table中的数据进行转义的实例
Sep 12 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
Nov 01 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获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
javascript 面向对象 function类
2010/05/13 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
详解python中sort排序使用
2019/03/23 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
《要下雨了》教学反思
2014/02/17 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
合作协议书怎么写
2014/04/18 职场文书
商铺消防安全责任书
2014/07/29 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
教师节寄语2015
2015/03/23 职场文书
考试没考好检讨书
2015/05/06 职场文书
大学生求职意向书
2015/05/11 职场文书
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers