蓝桥杯(Web大学组)2022省赛真题:冬奥大抽奖

思路:

使用模板字符串,借助time的值选择添加或移除样式的盒子,由于盒子的类名最多为li9,所以要将time的值取余,且判断余数为0时,就取1,否则会获取空值报错

`.ul .li${time%9!=0?time%9:1}`

代码:
javascript 复制代码
let rollTime; // 定义定时器变量用来清除定时器
let time = 0; // 转动次数
let speed = 300; // 转动时间间隔
let times; // 总转动次数

// 开始按钮点击事件后开始抽奖
$("#start").on("click", function () {
  $("#award").text(""); //清空中奖信息
  times = parseInt(Math.random() * (20 - 30 + 1) + 20, 10); // 定义总转动次数,随机20-30次
  rolling();
});

// TODO:请完善此函数
function rolling() {
  time++; // 转动次数加1


  //添加黄色样式的类
  document.querySelector(`.ul .li${time%9!=0?time%9:1}`).classList.add('active');
  clearTimeout(rollTime);
  rollTime = setTimeout(() => {
    //移除类
      document.querySelector(`.ul .li${time%9!=0?time%9:1}`).classList.remove('active');

    window.requestAnimationFrame(rolling); // 进行递归动画
  }, speed);

  // time > times 转动停止
  if (time > times) {
    clearInterval(rollTime);

    //将结果显示在上面
  $("#award").text(`${document.querySelector(`.ul .li${time%9!=0?time%9:1}`).innerText}`); //清空中奖信息

    time = 0;
    return;
  }
}
相关推荐
yuzhiboyouye17 小时前
VO一般java后端怎么转换成前端想要的数据
java·前端·状态模式
小脑斧12318 小时前
从范式重构到工程落地:OpenTiny NEXT 引领前端智能化新范式
前端·hermesagent·opentiny next
小江的记录本18 小时前
【AI大模型选型指南】《2026年5月(最新版)国内外主流AI大模型选型指南》(企业版)
前端·人工智能·后端·ai作画·aigc·ai编程·ai写作
幽络源小助理18 小时前
最新轻量美化表白墙系统源码v2.0_带后台版_附搭建教程
前端·开源·源码·php源码
qq_3813385018 小时前
前端状态管理新范式:Zustand、Jotai 与 Preact Signals 深度对比
前端·arcgis
布局呆星18 小时前
Vue Router 笔记(二):正则路由、组件通信与动态路由
前端·javascript·vue.js
丑八怪大丑18 小时前
HTML&CSS
前端·css·html
团象科技18 小时前
全渠道出海布局之下,多币种云结算承担着怎样的作用
前端·人工智能
rising start18 小时前
InsightEdu - 轻量智能学习平台
javascript·axios·css3·html5·fastapi·orm·dify
lolo大魔王19 小时前
Go 语言 Web 框架 Gin 入门详解
前端·golang·gin