iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >原生JavaScript实现九宫格抽奖
  • 963
分享到

原生JavaScript实现九宫格抽奖

2024-04-02 19:04:59 963人浏览 安东尼
摘要

本文实例为大家分享了javascript实现九宫格抽奖 的具体代码,供大家参考,具体内容如下 思路:通过移动背景颜色实现中奖信息,每一个方形元素,需要按顺序排列,加个延时器

本文实例为大家分享了javascript实现九宫格抽奖 的具体代码,供大家参考,具体内容如下

思路:通过移动背景颜色实现中奖信息,每一个方形元素,需要按顺序排列,加个延时器,当到最后一个的时候让它从0开始就可以动起来了,!!

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta Http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            margin: 0 auto;
            position: relative;
        }

        #box div {
            width: 198px;
            height: 198px;
            border-radius: 10px;
            
            text-align: center;
            line-height: 198px;
            background-color: #ffe8e8;
            position: absolute;
        }

        .btns {
            text-align: center;
        }

        .active {
            background-color: rgb(255, 94, 0) !important;
        }
        #start,#end{
            width: 100px;
            height: 30px;
            background-color: rgb(24, 105, 255);
            color: white;
        }
    </style>
</head>

<body>
    <div id="box"></div>
    <br>
    <div class="btns">
        <button id="start">开始</button>
        <button id="end">停止</button>
    </div>

    <script>
        var box = document.getElementById('box');
        var start = document.getElementById('start');
        var end = document.getElementById('end');
        // 所有奖品
        var allList = ['宇宙战将', '白起', '太阳系级宇宙战舰', '小破木船', '地球级宇宙战将', '月球级蘸酱', '太阳级蘸酱', '大西洋级蘸酱'];
        // 允许抽中的奖品
        var list = ['太阳系级宇宙战舰','白起']; // 想要中的奖品放进去

        for (let i = 0; i < allList.length; i++) {
            box.innerHTML += `<div>${allList[i]}</div>`;
        }

        box.children[1].style.left = '200px';
        box.children[2].style.left = '400px';
        box.children[3].style.left = '400px';
        box.children[3].style.top  = '200px';
        box.children[4].style.left = '400px';
        box.children[4].style.top  = '400px';
        box.children[5].style.top  = '400px';
        box.children[5].style.left = '200px';
        box.children[6].style.top  = '400px';
        box.children[7].style.top  = '200px';

        var running = false;
        var flag = true;
        var active = 0;
        var time = 200;
        var Goods = '';
        box.children[active].className = 'active';

        start.onclick = function () {
            if (!running) {  // 只有当没有在抽奖中的时候,才让点击开始
                running = true;  // 重置
                time = 200;  // 重置
                f1();
            }
        }
  
        end.onclick = function () {
            if (running) { // 只有当正在抽奖中的时候才让点击停止
                flag = false;
                goods = list[Math.floor(Math.random() * list.length)];  // 0, 1, 2随机的一个值
            }
        }

        // 如果使用定时器,time会死不会改变;通过延时器模拟定时器的方法,是可以改变定时的时间
        function f1() {
            box.children[active].className = '';
            active++;
            if (active > 7){  // 因为是从0开始计算所以写7
                active = 0;
            }
            box.children[active].className = 'active';
            if (flag) { // 抽奖速度越来越快
                time -= 10;
                if (time < 50) {
                    time = 50;
                }
            } else { // 抽奖速度越来越慢
                time += 10;
                if (time > 300) {
                    time = 300;

                    // 判断当前滚动到的奖品是否是内定的奖品
                    if (box.children[active].textContent === goods ) {
                        flag = true;
                        running = false;
                         setTimeout(() => {
                             alert(goods); // 弹出抽奖信息
                         }, 500);
                        return;  // 抽中奖品后,停止抽奖

                    }
               
                }
            }
            setTimeout(f1,time);
        }
    </script>
</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 原生JavaScript实现九宫格抽奖

本文链接: https://www.lsjlt.com/news/152889.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 原生JavaScript实现九宫格抽奖
    本文实例为大家分享了JavaScript实现九宫格抽奖 的具体代码,供大家参考,具体内容如下 思路:通过移动背景颜色实现中奖信息,每一个方形元素,需要按顺序排列,加个延时器...
    99+
    2024-04-02
  • 原生JavaScript怎么实现九宫格抽奖
    本文小编为大家详细介绍“原生JavaScript怎么实现九宫格抽奖”,内容详细,步骤清晰,细节处理妥当,希望这篇“原生JavaScript怎么实现九宫格抽奖”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。思路:通过...
    99+
    2023-07-02
  • JavaScript实现九宫格抽奖
    本文实例为大家分享了JavaScript实现九宫格抽奖的具体代码,供大家参考,具体内容如下 看到个抽奖案例,觉得还不错。就自己做了一个简单版本。 点击中间的开始,抽奖就会跑起来,速...
    99+
    2024-04-02
  • Android实现九宫格抽奖
    本文实例为大家分享了Android实现九宫格抽奖的具体代码,供大家参考,具体内容如下 package cq.cake.luckdraw; import android.graph...
    99+
    2024-04-02
  • 原生JS怎样实现九宫格抽奖效果
    小编给大家分享一下原生JS怎样实现九宫格抽奖效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果图:代码如下:<!DOCTYPE html> <html>...
    99+
    2024-04-02
  • JS实现简单九宫格抽奖
    用JavaScript写一个九宫格的抽奖盘,供大家参考,具体内容如下 点击中间的块,选中奖品的亮块会在边缘的8个块循环; 选中后,弹出选中的内容; 代码参考: HTML文件: <...
    99+
    2024-04-02
  • Android 实现九宫格抽奖功能
    目录效果展示实现步骤 1.生成抽奖矩形:2.添加奖品图片:3.实现抽奖动画:4.实现动态设置参数:5.添加抽奖结果回调效果展示 实现步骤 1.生成抽奖矩形: 其中每个矩形的宽高相...
    99+
    2024-04-02
  • jquery如何实现九宫格抽奖
    这篇文章主要介绍jquery如何实现九宫格抽奖,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!jquery实现九宫格抽奖的方法:1、创建好前端展示的代码;2、通过jquery代码“$("#lottery a&...
    99+
    2023-06-21
  • JS实现简单的九宫格抽奖
    本文实例为大家分享了JS实现简单九宫格抽奖的具体代码,供大家参考,具体内容如下 结构 <body>     <div id="fa">         &l...
    99+
    2024-04-02
  • JS如何实现简单九宫格抽奖
    这篇文章主要介绍了JS如何实现简单九宫格抽奖的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS如何实现简单九宫格抽奖文章都会有所收获,下面我们一起来看看吧。HTML文件:<body><div&...
    99+
    2023-07-02
  • JavaScript实现九宫格抽奖功能的示例代码
    目录效果图实现流程主要代码效果图 话不多说,直接上效果: 实现流程 主要流程为: 1. 根据效果图,构建静态页面 2. 获取元素(自带的属性) 3. 绑定事件 4. 事件触发之后 ...
    99+
    2024-04-02
  • jquery实现九宫格大转盘抽奖功能
    本篇内容主要讲解“jquery实现九宫格大转盘抽奖功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery实现九宫格大转盘抽奖功能”吧! 一、用...
    99+
    2024-04-02
  • Vue3实现九宫格抽奖的示例代码
    目录前言前期构思具体实现1、布局2、指定奖品3、抽奖最终效果前言 对象说晚饭吃什么太难选择,问我能不能做一个九宫格抽奖来决定我们晚上吃什么,emmm。 既然对象都开口了,不做也不行啊...
    99+
    2024-04-02
  • JS如何实现简单的九宫格抽奖
    本篇内容介绍了“JS如何实现简单的九宫格抽奖”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!结构<body>  ...
    99+
    2023-07-02
  • 微信小程序实现简单九宫格抽奖
    本文实例为大家分享了微信小程序实现简单九宫格抽奖的具体代码,供大家参考,具体内容如下 废话不多说,先上样板图 代码就先wxml文件: <view id="container"...
    99+
    2024-04-02
  • jquery+h5实现九宫格抽奖特效(前后端代码)
    前言: 前端:jq+h5 实现九宫格动效 后端:thinkphp3.2.3 实现中奖概率算法 功能:支持读取数据库预设的中奖率及奖品池,中奖率可以自定义,必须是整数 最终效果如下: ...
    99+
    2024-04-02
  • vue实现宫格轮转抽奖
    vue实现宫格轮转抽奖(类似穿越火线的xx轮回),供大家参考,具体内容如下 不做过多的解说,直接上代码啦。关键的代码都写了注释,很容易理解。直接复制即可使用! 另外css部分依赖 n...
    99+
    2024-04-02
  • 怎么php+lottery.js制作九宫格抽奖程序
    本篇内容主要讲解“怎么php+lottery.js制作九宫格抽奖程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么php+lottery.js制作九宫格抽奖程序”吧!php+lottery....
    99+
    2023-06-04
  • 原生JS生成九宫格
    原生JS生成九宫格图片并且实现图片互换,供大家参考,具体内容如下 解题思路 涉及知识点,请 1、熟练利用js做出html样式2、对onmousedown,onmousemove,on...
    99+
    2024-04-02
  • 怎么用PHP+Ajax实现手机端九宫格抽奖程序
    这篇文章主要讲解了“怎么用PHP+Ajax实现手机端九宫格抽奖程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用PHP+Ajax实现手机端九宫格抽奖程序”吧!PHP+Ajax结合lot...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作