踩楼抽奖单页工具

演示图

20241013084920387-image

 

代码

 

 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>抽奖</title>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
    <style>
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            font-family: 'Roboto', sans-serif;
            background: linear-gradient(to right, #e0f7fa, #ffebee); /* 渐变背景 */
            color: #333;
            line-height: 1.6;
            padding: 40px;
            max-width: 600px;
            margin: auto;
            border-radius: 12px;
            margin-top: 30px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
        }

        h1 {
            font-size: 2.5em;
            margin-bottom: 20px;
            color: #444;
            text-align: center;
        }

        h3 {
            font-size: 1.5em;
            margin: 15px 0;
            color: #555;
        }

        .prize-input, .floor-input {
            margin-bottom: 15px;
            display: flex;
            align-items: center;
            border-radius: 8px;
            background-color: #ffffff;
            padding: 15px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        }

        .prize-input input, .floor-input input {
            flex: 1;
            padding: 12px;
            margin-right: 10px;
            border: 2px solid #007aff; /* 加粗边框 */
            border-radius: 4px;
            font-size: 1em;
            transition: border-color 0.3s;
        }

        .prize-input input:focus, .floor-input input:focus {
            border-color: #0056b3; /* 深蓝色聚焦效果 */
            outline: none;
        }

        .prize-input button, #drawButton {
            background-color: #007aff;
            color: white;
            border: none;
            border-radius: 4px;
            padding: 12px 15px;
            cursor: pointer;
            font-size: 1em;
            transition: background-color 0.3s;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
        }

        .prize-input button:hover, #drawButton:hover {
            background-color: #0056b3;
        }

        .result {
            margin-top: 20px;
            font-weight: bold;
            color: #27ae60;
            background-color: #ecf0f1;
            padding: 15px;
            border-radius: 4px;
            text-align: center;
            border: 1px solid #27ae60; /* 绿色边框 */
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
            display: none; /* 默认隐藏结果区域 */
        }

        @media (max-width: 600px) {
            body {
                padding: 20px;
            }
            h1 {
                font-size: 2em;
            }
            h3 {
                font-size: 1.2em;
            }
            .prize-input, .floor-input {
                flex-direction: column;
            }
            .prize-input input, .floor-input input {
                margin-right: 0;
                margin-bottom: 10px;
                width: 100%; /* 宽度100% */
            }
            .prize-input button {
                width: 100%; /* 按钮宽度100% */
            }
        }
    </style>
</head>
<body>
    <div class="prize-list">
        <h1>抽奖</h1>
        <h3>输入奖品</h3>
        <div id="prizeInputs">
            <div class="prize-input">
                <input type="text" placeholder="奖品名称" required>
                <input type="number" placeholder="数量" min="1" required>
            </div>
        </div>
        <button id="addPrizeButton">添加奖品</button>
    </div>
<h3>参与楼层</h3>
    <div class="floor-input">
        
        <input type="number" id="floorCount" placeholder="输入楼层数量" min="1" required>
    </div>

    <button id="drawButton">抽奖</button>
    <div class="result" id="result"></div> <!-- 默认隐藏 -->

    <script>
        const addPrizeButton = document.getElementById('addPrizeButton');
        const drawButton = document.getElementById('drawButton');
        const prizeInputs = document.getElementById('prizeInputs');
        const floorCountInput = document.getElementById('floorCount');
        const resultDiv = document.getElementById('result');

        // 添加奖品输入框
        addPrizeButton.addEventListener('click', () => {
            const newPrizeInput = document.createElement('div');
            newPrizeInput.classList.add('prize-input');
            newPrizeInput.innerHTML = `
                <input type="text" placeholder="奖品名称" required>
                <input type="number" placeholder="数量" min="1" required>
                <button class="deletePrizeButton">删除</button>
            `;
            prizeInputs.appendChild(newPrizeInput);

            // 为删除按钮添加事件
            newPrizeInput.querySelector('.deletePrizeButton').addEventListener('click', () => {
                prizeInputs.removeChild(newPrizeInput);
            });
        });

        // 抽奖
        drawButton.addEventListener('click', () => {
            const prizeEntries = prizeInputs.getElementsByClassName('prize-input');
            const floorCount = parseInt(floorCountInput.value);
            const winners = [];
            const totalPrizes = Array.from(prizeEntries).reduce((total, entry) => {
                const quantity = parseInt(entry.children[1].value);
                return total + (isNaN(quantity) ? 0 : quantity);
            }, 0);

            // 验证参与楼层数量是否大于奖品数量
            if (floorCount <= totalPrizes) {
                alert("参与楼层数量必须大于奖品数量。");
                return;
            }

            // 验证楼层数量是否为数字
            if (isNaN(floorCount) || floorCount < 1) {
                alert("参与楼层数量必须为正整数。");
                return;
            }

            // 抽奖逻辑
            const usedFloors = new Set(); // 用于存储已中奖的楼层

            for (let entry of prizeEntries) {
                const prizeName = entry.children[0].value;
                const prizeQuantity = parseInt(entry.children[1].value);
                
                for (let i = 0; i < prizeQuantity; i++) {
                    let winnerFloor;
                    do {
                        winnerFloor = Math.floor(Math.random() * floorCount) + 1; // 随机生成楼层
                    } while (usedFloors.has(winnerFloor)); // 确保楼层不重复中奖
                    usedFloors.add(winnerFloor);
                    winners.push(`奖品: ${prizeName}, 楼层: ${winnerFloor}`);
                }
            }

            resultDiv.innerHTML = winners.length > 0 ? winners.join('<br>') : '没有中奖';
            resultDiv.style.display = 'block'; // 显示结果区域
        });
    </script>
</body>
</html>

 

 

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容