吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1693|回复: 31
收起左侧

[其他原创] 抽奖工具

  [复制链接]
公主月月 发表于 2024-11-21 15:11
效果,根据号码进行随机排序
image.png
代码如下:
[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>号码抽奖游戏</title>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            text-align: center;
            padding: 50px;
            background-color: #f7f7f7;
        }
        .container {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            display: inline-block;
        }
        h1 {
            color: #333;
        }
        input[type="number"] {
            padding: 10px;
            margin: 5px;
            border: 1px solid #ddd;
            border-radius: 4px;
            width: 60px;
        }
        button {
            padding: 10px 20px;
            margin: 20px 0;
            border: none;
            border-radius: 4px;
            background-color: #5cb85c;
            color: white;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        button:hover {
            background-color: #4cae4c;
        }
        #result {
            font-size: 2em;
            margin-top: 20px;
            transition: transform 1s;
            display: inline-block;
        }
        .spin {
            animation: spin 5s linear infinite;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>号码抽奖游戏</h1>
        <input type="number" id="num1" placeholder="输入第一个号码" required>
        <input type="number" id="num2" placeholder="输入第二个号码" required>
        <input type="number" id="num3" placeholder="输入第三个号码" required>
        <button id="drawButton">抽奖</button>

        <div id="result"></div>
    </div>

    <script>
        document.getElementById('drawButton').addEventListener('click', function() {
            const num1 = parseInt(document.getElementById('num1').value);
            const num2 = parseInt(document.getElementById('num2').value);
            const num3 = parseInt(document.getElementById('num3').value);

            if (isNaN(num1) || isNaN(num2) || isNaN(num3)) {
                alert("请确保输入的是有效的数字!");
                return;
            }

            const numbers = [num1, num2, num3];
            const currentDate = new Date();
            const seed = currentDate.getTime(); // 使用当前时间作为随机种子
            const shuffledNumbers = shuffle(numbers, seed);

            const resultDiv = document.getElementById('result');
            resultDiv.textContent = ''; // 清除之前的结果
            resultDiv.classList.add('spin'); // 添加旋转效果

            setTimeout(() => {
                resultDiv.classList.remove('spin'); // 移除旋转效果
                resultDiv.textContent = '抽奖结果: ' + shuffledNumbers.join(', ');
            }, 5000); // 5秒后显示结果
        });

        function shuffle(array, seed) {
            let m = array.length, t, i;
            let s = new Date().getTime() ^ seed; // 使用当前时间与种子结合作为随机种子
            while (0 !== m) {
                // Pick a remaining element…
                i = Math.floor(Math.random() * m--);
                // And swap it with the current element.
                t = array[m];
                array[m] = array[i];
                array[i] = t;
                //适度“洗牌”以增加随机性
                s = (s + array[m] + array[i]) % 31;
            }
            return array;
        }
    </script>
</body>
</html>


代码复制粘贴,保存格式为 .html 点击即可运行

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lh123456666 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Ikari01 发表于 2024-11-23 15:33
优化了一下
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>号码抽奖游戏</title>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            text-align: center;
            padding: 50px;
            background-color: #f7f7f7;
        }
        .container {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            display: inline-block;
            max-width: 90%;
        }
        h1 {
            color: #333;
        }
        input[type="number"] {
            padding: 10px;
            margin: 5px;
            border: 1px solid #ddd;
            border-radius: 4px;
            width: 80px;
            font-size: 1em;
        }
        button {
            padding: 10px 20px;
            margin: 20px 0;
            border: none;
            border-radius: 4px;
            background-color: #5cb85c;
            color: white;
            font-size: 1.2em;
            cursor: pointer;
            transition: background-color 0.3s, transform 0.2s;
        }
        button:hover {
            background-color: #4cae4c;
            transform: scale(1.05);
        }
        #result {
            font-size: 1.5em;
            margin-top: 20px;
            color: #007bff;
            display: inline-block;
        }
        .spin {
            animation: spin 2s linear infinite;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>号码抽奖游戏</h1>
        <p>请输入三个号码(0-99):</p>
        <input type="number" id="num1" min="0" max="99" placeholder="号码1">
        <input type="number" id="num2" min="0" max="99" placeholder="号码2">
        <input type="number" id="num3" min="0" max="99" placeholder="号码3">
        <br>
        <button id="drawButton">开始抽奖</button>
        <div id="result"></div>
    </div>

    <script>
        document.getElementById('drawButton').addEventListener('click', function() {
            const num1 = parseInt(document.getElementById('num1').value);
            const num2 = parseInt(document.getElementById('num2').value);
            const num3 = parseInt(document.getElementById('num3').value);

            if ([num1, num2, num3].some(isNaN)) {
                alert("请输入有效的数字!");
                return;
            }

            const numbers = [num1, num2, num3];
            const resultDiv = document.getElementById('result');
            resultDiv.textContent = '抽奖中,请稍候...';
            resultDiv.classList.add('spin');

            setTimeout(() => {
                const shuffledNumbers = shuffle(numbers);
                resultDiv.classList.remove('spin');
                resultDiv.textContent = `抽奖结果: ${shuffledNumbers.join(', ')}`;
            }, 2000); // 2秒后显示结果
        });

        function shuffle(array) {
            let m = array.length, t, i;
            while (m) {
                i = Math.floor(Math.random() * m--);
                t = array[m];
                array[m] = array[i];
                array[i] = t;
            }
            return array;
        }
    </script>
</body>
</html>
Ikari01 发表于 2024-12-1 09:55
zhenzhen413 发表于 2024-11-24 16:08
感谢分享,能做一个学号的吗?

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>学号抽奖游戏</title>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            text-align: center;
            padding: 50px;
            background-color: #f7f7f7;
        }
        .container {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            display: inline-block;
            max-width: 90%;
        }
        h1 {
            color: #333;
        }
        input[type="number"], input[type="text"] {
            padding: 10px;
            margin: 5px;
            border: 1px solid #ddd;
            border-radius: 4px;
            width: 150px;
            font-size: 1em;
        }
        button {
            padding: 10px 20px;
            margin: 20px 0;
            border: none;
            border-radius: 4px;
            background-color: #5cb85c;
            color: white;
            font-size: 1.2em;
            cursor: pointer;
            transition: background-color 0.3s, transform 0.2s;
        }
        button:hover {
            background-color: #4cae4c;
            transform: scale(1.05);
        }
        #result {
            font-size: 1.5em;
            margin-top: 20px;
            color: #007bff;
            display: inline-block;
        }
        .spin {
            animation: spin 2s linear infinite;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>学号抽奖游戏</h1>
        <p>请输入学号模板(例如:2202002):</p>
        <input type="text" id="studentIdTemplate" placeholder="学号模板">
        <p>请输入人数:</p>
        <input type="number" id="numPeople" min="1" placeholder="人数">
        <br>
        <button id="drawButton">开始抽奖</button>
        <div id="result"></div>
    </div>

    <script>
        document.getElementById('drawButton').addEventListener('click', function() {
            const template = document.getElementById('studentIdTemplate').value.trim();
            const numPeople = parseInt(document.getElementById('numPeople').value);

            if (!template || isNaN(numPeople) || numPeople <= 0) {
                alert("请输入有效的学号模板和人数!");
                return;
            }

            const resultDiv = document.getElementById('result');
            resultDiv.textContent = '抽奖中,请稍候...';
            resultDiv.classList.add('spin');

            setTimeout(() => {
                const studentIds = generateStudentIds(template, numPeople);
                const randomId = studentIds[Math.floor(Math.random() * studentIds.length)];
                resultDiv.classList.remove('spin');
                resultDiv.textContent = `抽奖结果: ${randomId}`;
            }, 2000); // 2秒后显示结果
        });

        // 生成学号列表
        function generateStudentIds(template, numPeople) {
            const studentIds = [];
            const base = parseInt(template.slice(-3)); // 提取模板中的最后三位数字
            for (let i = 0; i < numPeople; i++) {
                const studentId = template.slice(0, -3) + (base + i).toString().padStart(3, '0');
                studentIds.push(studentId);
            }
            return studentIds;
        }
    </script>
</body>
</html>
这个功能简陋,只能适配同一个年级同一个班的
jkl2024 发表于 2024-11-21 17:07
kover 发表于 2024-11-21 17:22
这个不算抽奖吧?
LTAbby 发表于 2024-11-21 17:28
优秀优秀
ltgb 发表于 2024-11-21 18:34
运行成功了
YiRan777 发表于 2024-11-21 18:48
挺不错的、还可以
goliacyc 发表于 2024-11-21 19:03
可以用来公司年会抽奖用
hei1906 发表于 2024-11-21 20:15
哈哈还刚好用得上,谢谢~~~
QP9711 发表于 2024-11-21 21:40
可以用上活动了
wuqianrui 发表于 2024-11-21 21:43
学习了!!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-7 19:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表