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 相关文章推荐
AngularJS入门教程之学习环境搭建
Dec 06 Javascript
js点击文本框弹出可选择的checkbox复选框
Feb 03 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
Feb 06 Javascript
js实现精确到秒的倒计时效果
May 29 Javascript
Vue.js每天必学之计算属性computed与$watch
Sep 05 Javascript
第一次接触神奇的前端框架vue.js
Dec 01 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
Jan 21 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
Aug 23 Javascript
Vue源码学习之初始化模块init.js解析
Nov 02 Javascript
Vue项目中使用WebUploader实现文件上传的方法
Jul 21 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 Javascript
uniapp开发小程序的经验总结
Apr 08 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 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
VueRouter导航守卫用法详解
2017/12/25 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
用vue写一个日历
2020/11/02 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
easy_install python包安装管理工具介绍
2013/02/10 Python
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python requests模块cookie实例解析
2020/04/14 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
爱我中华演讲稿
2014/05/20 职场文书
小学运动会班级口号
2014/06/09 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript