原生JS来完成一个小游戏——点击抽奖

用原生的JS来完成的一个小游戏,进行了简单的点击触发以及判断

html 复制代码
 <style>
    * {
      margin: 0;
      padding: 0;
    }

    body {

      background-color: #f7f7f7;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      margin: 0;
    }

    .container {
      background-color: white;
      padding: 30px;
      border-radius: 10px;
      box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
      text-align: center;
      width: 300px;
    }

    h1 {
      font-size: 24px;
      color: #333;
      margin-bottom: 20px;
    }

    input[type="text"],
    input[type="number"] {
      width: 100%;
      padding: 10px;
      margin: 10px 0;
      border: 2px solid #ddd;
      border-radius: 5px;
      font-size: 16px;
    }

    button {
      background-color: #4CAF50;
      color: white;
      padding: 12px 20px;
      font-size: 16px;
      border: none;
      border-radius: 5px;
      cursor: pointer;
      width: 100%;
      margin-top: 10px;
      transition: background-color 0.3s ease;
    }

    button:hover {
      background-color: #45a049;
    }

    .btn {
      display: none;
      background-color: #008CBA;
    }

    .btn:hover {
      background-color: #007B9F;
    }

    .alert-message {
      font-size: 18px;
      color: #333;
      margin-top: 20px;
    }

    .btn-container {
      display: none;
    }
  </style>

HTML代码如下

html 复制代码
<div class="container">
    <h1>抽奖活动</h1>
    <input type="text" id="types" placeholder="请输入年龄">
    <button onclick="getOld()" class="buttons">提交</button>
    <div class="btn-container">
      <input type="number" id="hands" readonly>
      <button class="btn" onclick="dclick()">点击</button>
    </div>
    <div id="message" class="alert-message"></div>
  </div>

以下为JS代码

javascript 复制代码
<script>
    const old = document.querySelector('#types');
    const buttons = document.querySelector('.buttons');
    const clicks = document.querySelector('#hands');
    const btn = document.querySelector('.btn');
    const message = document.querySelector('#message');

    function getOld() {
      // 清除之前旧的消息
      message.innerHTML = '';
      //获取并判断输入框内的值
      if (old.value < 18) {
        alert('青少年不让抽奖');
      } else if (old.value < 25) {
        alert('壮年不让抽奖');
      } else if (old.value < 60) {
        alert('只允许60岁以上老人抽奖');
      } else if (old.value > 100) {
        alert('请输入正确年龄');
      } else {
        alert('开始');
        //获取并更改点击框为显示状态
        document.querySelector('.btn-container').style.display = 'block';
        //设置为行内块
        clicks.style.display = 'inline-block';
        //设置为行内块
        btn.style.display = 'inline-block';
        //设置一个一次性定时器,当10s后执行内里语句
        setTimeout(function () {
          if (clicks.value >= 30 && clicks.value < 60) {
            message.innerHTML = '手速还不错吧';
          } else if (clicks.value >= 60 && clicks.value < 100) {
            message.innerHTML = '手速可以啊';
          } else if (clicks.value >= 100) {
            message.innerHTML = '你用连点器了吧?';
          } else if (clicks.value >= 10 && clicks.value < 30) {
            message.innerHTML = '菜就多练';
          }
          //完成以上一切以后清空所有数据,还原为最初样式
          getReset();
        }, 10000);
      }
      //若判断错误,即用户输入错误则清空值
      old.value = '';
    }

    function dclick() {
      //令第二个输入框内值自增
      clicks.value++;
    }
    //进行清空操作
    function getReset() {
      old.value = '';
      clicks.value = '';
      clicks.style.display = 'none';
      btn.style.display = 'none';
      document.querySelector('.btn-container').style.display = 'none';
    }
  </script>

以上代码仅为个人练习所用,可能会有地方有错误,仅供参考

相关推荐
灵感__idea2 小时前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
yinuo2 小时前
轻松接入大语言模型API -04
前端
袋鼠云数栈UED团队3 小时前
基于 Lexical 实现变量输入编辑器
前端·javascript·架构
cipher3 小时前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
UrbanJazzerati3 小时前
非常友好的Vue 3 生命周期详解
前端·面试
AAA阿giao3 小时前
从零构建一个现代登录页:深入解析 Tailwind CSS + Vite + Lucide React 的完整技术栈
前端·css·react.js
亦妤3 小时前
JS执行机制、作用域及作用域链
javascript
兆子龙4 小时前
像 React Hook 一样「自动触发」:用 Git Hook 拦住忘删的测试代码与其它翻车现场
前端·架构
兆子龙5 小时前
用 Auto.js 实现挂机脚本:从找图点击到循环自动化
前端·架构
SuperEugene5 小时前
表单最佳实践:从 v-model 到自定义表单组件(含校验)
前端·javascript·vue.js