JavaScript实现抽奖效果

代码

<div id="box">
      <div class="option">民主</div>
      <div class="option">文明</div>
      <div class="option">和谐</div>
      <div class="option">自由</div>
      <div id="start">Start</div>
      <div class="option">平等</div>
      <div class="option">公正</div>
      <div class="option">法治</div>
      <div class="option">爱国</div>
</div>

逻辑

//1 点击开始触发定时器
      //2 定时器内部,随机一个数,通过这个数来获取奖品所在的元素
      //3 必须设置一个时间点 停止定时器
      let btn = document.getElementById('start');
      let options = document.getElementsByClassName('option');
      let timer = null;
      document.addEventListener('click', function () {
        // 设置初始值 作为事件判断
        let number = 0;
        if (timer == null) {
          // 触发定时器
          timer = setInterval(() => {
            number++;
            //随机0-7的数 通过数组下标选中
            let num = Math.round(Math.random() * (7 - 0) + 0);
            // 把所有的元素样式恢复
            for (let i = 0; i < options.length; i++) {
              options[i].style.background = '#fff'
            }
            // 给选中的元素添加背景样式
            options[num].style.background = 'lightblue';
            // 给定时器设置有效时间
            // 30代表业务要求 随便设置数目
            if (number >= 30) {
              clearInterval(timer);
              timer = null;
            }
          }, 100);
        }
      })

效果

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值