wed前端第三次作业

一:使用js完成抽奖项目 效果和内容自定义,可以模仿游戏抽奖页面

1、相关代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>抽奖活动</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    h2 {
      text-align: center;
    }
    .box {
      width: 600px;
      margin: 50px auto;
      display: flex;
      font-size: 25px;
      line-height: 40px;
    }
    .qs {
      width: 450px;
      height: 40px;
      color: red;
 
    }
    .btns {
      text-align: center;
    }
    .btns button {
      width: 120px;
      height: 35px;
      margin: 0 50px;
    }
    .selected {
      width: 600px;
      margin: 50px auto;
      display: flex;
      font-size: 25px;
      line-height: 40px;
    }
    .list {
      color: red;
    }
  </style>
</head>
<body>
    <h2>随机抽奖</h2>
    <div class="box">
        <span>当前奖品:</span>
        <div class="qs">点击开始抽奖</div>
    </div>
    <div class="btns">
        <button class="start">开始</button>
        <button class="end">结束</button>
    </div>
        <div class="selected">
        <span>已获奖品:</span>
        <div class="list"></div>
    </div>
    <script>
        // 奖品池 
        const prizes = [
            'iPhone 15 Pro',
            'Switch 游戏机',
            '小米平板 6',
            '100 元话费',
            '蓝牙耳机',
            '腾讯视频年卡',
            '机械键盘',
            '充电宝',
            '抱枕',
            '谢谢参与',
            '再来一次'
        ];
        let timerId = 0;
        let random    = 0;
        const qs      = document.querySelector('.qs');
        const listBox = document.querySelector('.list');
        const start   = document.querySelector('.start');
        const end     = document.querySelector('.end');
        start.addEventListener('click', () => {
            if (prizes.length <= 1) {
                start.disabled = end.disabled = true;
                return;
            }
            timerId = setInterval(() => {
                random = Math.floor(Math.random() * prizes.length);
                qs.textContent = prizes[random];
            }, 100);
        });
        end.addEventListener('click', () => {
            clearInterval(timerId);
            const prize = prizes.splice(random, 1)[0]; 
            showPrize(prize);
        });
        function showPrize(prize) {
            const div = document.createElement('div');
            div.textContent = prize;
            listBox.appendChild(div);
        }
    </script>
</body>
</html>

2、运行结果

可以连续抽奖十次

相关推荐
先吃饱再说6 分钟前
React 组件通信:从 Props 单向传递到自定义事件
前端·react.js·前端框架
swipe11 分钟前
05|(前端转后全栈)不手写一堆 SQL,后端怎么操作数据库?MyBatis-Plus 入门
前端·后端·全栈
swipe15 分钟前
04|(前端转后全栈)前端状态为什么不够用?从页面数据到 MySQL 持久化
前端·后端·全栈
橘子星16 分钟前
别光看教程!手把手拆解 React Todo 项目,一文吃透 5 个核心概念
前端·javascript
大白要努力!22 分钟前
纯前端实现 PDF 加水印工具 —— 零后端、支持中文、实时预览
前端·pdf·html
石小石Orz25 分钟前
TRAE SOLO实战:实现一个桌面3D助手
前端·人工智能
蜡台30 分钟前
使用 uni-popup 实现数据选择器Data-Picker
前端·javascript·html·uniapp·uni-popup·data-picker
拆房老料31 分钟前
BaseMetas FileView 1.2.0 发布:Office/WPS 大文件预览与内存安全优化实测
前端·产品运营·开源软件
blns_yxl34 分钟前
Promise封装Fetch + 重试机制(HTML+JS)
前端·javascript·html
Elastic 中国社区官方博客39 分钟前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索