记录JavaScript练习

简介: 记录JavaScript练习

定时器练习

HTML代码:

<div id="lottery">
      <div class="box-one">1</div>
      <div class="box-two">2</div>
      <div class="box-three">3</div>
      <div class="box-four">4</div>
      <div class="box-five">5</div>
      <div class="box-six">6</div>
      <div class="box-seven">7</div>
      <div class="box-eight">8</div>
    </div>
    <button id="start-btn">开始抽奖</button>

CSS代码:

    <style>
      #lottery {
      
      }
      .box-one {
        width: 100px;
        height: 100px;
        font-size: 50px;
        text-align: center;
        line-height: 100px;
        background-color: #fff;
        border: 1px solid black;
        margin: 5px;
        position: absolute;
        left: 330px;
        top: 6px;
      }
      .box-two {
        width: 100px;
        height: 100px;
        font-size: 50px;
        text-align: center;
        line-height: 100px;
        background-color: #fff;
        border: 1px solid black;
        margin: 5px;
        position: absolute;
        left: 440px;
        top: 6px;
      }
      .box-three {
        width: 100px;
        height: 100px;
        font-size: 50px;
        text-align: center;
        line-height: 100px;
        background-color: #fff;
        border: 1px solid black;
        margin: 5px;
        position: absolute;
        left: 550px;
        top: 6px;
      }
      .box-four {
        width: 100px;
        height: 100px;
        font-size: 50px;
        text-align: center;
        line-height: 100px;
        background-color: #fff;
        border: 1px solid black;
        margin: 5px;
        position: absolute;
        left: 550px;
        top: 120px;
      }
      .box-five {
        width: 100px;
        height: 100px;
        font-size: 50px;
        text-align: center;
        line-height: 100px;
        background-color: #fff;
        border: 1px solid black;
        margin: 5px;
        position: absolute;
        left: 550px;
        top: 234px;
      }
      .box-six {
        width: 100px;
        height: 100px;
        font-size: 50px;
        text-align: center;
        line-height: 100px;
        background-color: #fff;
        border: 1px solid black;
        margin: 5px;
        position: absolute;
        left: 440px;
        top: 234px;
      }
      .box-seven {
        width: 100px;
        height: 100px;
        font-size: 50px;
        text-align: center;
        line-height: 100px;
        background-color: #fff;
        border: 1px solid black;
        margin: 5px;
        position: absolute;
        left: 330px;
        top: 234px;
      }
      .box-eight {
        width: 100px;
        height: 100px;
        font-size: 50px;
        text-align: center;
        line-height: 100px;
        background-color: #fff;
        border: 1px solid black;
        margin: 5px;
        position: absolute;
        left: 330px;
        top: 120px;
      }
      
      .lottery-active {
        background-color: orange;
      }
      button{
        width: 100px;
        height: 100px;
        background-color: aqua;
        position: absolute;
        left:446px;
        top: 126px;
        
      }
      button:hover{
        cursor: grabbing;
      }
    </style>

JS代码:

    <script>
      let but = document.getElementById('start-btn');
      let lot = document.getElementById('lottery');
      let num = lot.getElementsByTagName('div');
      let i = 0;
      let speed = 0;
      let nums;
      let time = 500;
      but.onclick = button;
 
      function button() {
        num[i].style.backgroundColor = "orange";
        inner = setInterval(rotates, time)
        nums = Math.floor(Math.random() * num.length);
        console.log(nums);
        but.onclick = null
      }
 
      function rotates() {
        if (i < num.length - 1) {
          i++;
          num[i].style.backgroundColor = "orange";
          num[i - 1].style.backgroundColor = "white";
 
        } else {
          i = 0;
          num[i].style.backgroundColor = "orange";
          num[num.length - 1].style.backgroundColor = "white";
          speed++;
        }
        if (speed <= 3) {
          if (time <= 100) {
            time = 100;
          } else {
            time -= 50;
          }
        } else {
          if (time >= 500) {
            time = 500;
          } else {
            time += 50;
          }
        }
        console.log(time);
        if (i == nums && speed > 5) {
          clearInterval(inner)
          setTimeout(function() {
            alert("获得" + num[i].innerHTML);
            num[i].style.backgroundColor = "white";
            but.onclick = button;
            nums = 0;
            i = 0;
            time = 500;
            speed = 0;
          }, 200)
        } else {
          clearInterval(inner);
          inner = setInterval(rotates, time)
        }
      }
    </script>

效果为九宫格旋转抽奖。仅为个人记录练习。

ヾ(•ω•`)oByeBye~

相关文章
|
6月前
|
存储 JavaScript 前端开发
JS项目练习
JS项目练习
|
5月前
|
JavaScript 前端开发
记录Javascript数组类练习
记录Javascript数组类练习
23 1
|
5月前
|
JavaScript 前端开发
JS循环语句以及一些小练习
JS循环语句以及一些小练习
30 1
|
5月前
|
存储 前端开发 JavaScript
[初学者必看]JavaScript 简单实际案例练习,锻炼代码逻辑思维
【6月更文挑战第2天】这是一个前端小项目合集,包括图片轮播器、动态列表、模态框、表单验证等14个项目,旨在帮助初学者提升编码技能和实战经验。每个项目提供关键提示,如使用HTML、CSS和JavaScript实现不同功能,如事件监听、动画效果和数据处理。通过这些项目,学习者可以锻炼前端基础并增强实际操作能力。
90 2
|
5月前
|
前端开发 JavaScript 搜索推荐
[初学者必看]JavaScript 15题简单小例子练习,锻炼代码逻辑思维
【6月更文挑战第3天】这是一个JavaScript编程练习集,包含15个题目及答案:计算两数之和、判断偶数、找数组最大值、字符串反转、回文检测、斐波那契数列、数组去重、冒泡排序、阶乘计算、数组元素检查、数组求和、字符计数、数组最值和质数判断以及数组扁平化。每个题目都有相应的代码实现示例。
409 1
|
5月前
|
前端开发 JavaScript 容器
技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)
技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)
64 0
|
6月前
|
JavaScript 前端开发 C语言
JavaScript编程语法练习
本篇文章是对于javaScript中if ,switch,while ,do-while,,for语法的作业练习.对于我来说也是对自己知识掌握的一种检验.是对js的基础语法进行的一次练习,通过有趣的示例进行练习,使得对于代码能够增加印象,对于知识的掌握更加透彻.
|
6月前
|
存储 JavaScript
JS中相等(==)和等全(===)的区别与练习
JS中相等(==)和等全(===)的区别与练习
39 1
|
6月前
|
移动开发 前端开发 JavaScript
H5+CSS3+JS逆向前置——4、DIV+CSS绘制旗帜练习
H5+CSS3+JS逆向前置——4、DIV+CSS绘制旗帜练习
64 0
|
JavaScript 前端开发
带你读《现代Javascript高级教程》二十四、正则表达式的常见问题与练习(1)
带你读《现代Javascript高级教程》二十四、正则表达式的常见问题与练习(1)