web蓝桥杯2022省赛真题:冬奥大抽奖

代码及注释:

javascript 复制代码
// TODO:请完善此函数
function rolling() {
  time++; // 转动次数加1
  let roll = time % 8 == 0 ? 8 : time % 8   //循环取1~8
  roll == 1 ? document.querySelector(`.li8`).classList.remove('active') : document.querySelector(`.li${roll-1}`).classList.remove('active') //取消掉前一个元素的active类名
  document.querySelector(`.li${roll}`).classList.add('active')  //当前元素添加的active类名
  clearTimeout(rollTime);
  rollTime = setTimeout(() => {
    window.requestAnimationFrame(rolling); // 进行递归动画
  }, speed);
  // time > times 转动停止
  if (time > times) {
    clearInterval(rollTime);
    time = 0;
    document.querySelector('#award').innerHTML = document.querySelector(`.li${roll}`).innerHTML    // 把当前元素内容放入
    return;
  }
}

知识点:

1.一个周期的循环数值:对周期取余

2.添加类名:element.classList.add('类名')

3.删除类名:element.classList.remove('类名')

4.获取元素document.querySelector('')

相关推荐
袅沫9 分钟前
Nginx中部署多个前端项目——区分路径
服务器·前端
Asize14 分钟前
为什么写代码前要先规划组件树?Next.js + Redis 笔记系统实战
前端·javascript·next.js
meilindehuzi_a17 分钟前
Next.js 全栈基础实战:从 SPA、SSR 到 App Router 与 Todo API
开发语言·javascript·ecmascript
用户9210802628618 分钟前
6. 数据大屏 WebSocket 稳定性优化:心跳检测、断点续传和消息去重
前端
柚yuzumi18 分钟前
CSS 定位布局:让元素各就各位
前端·css
光影少年21 分钟前
react navite图片加载优化、大图卡顿、缓存策略
前端·react native·react.js
小林ixn21 分钟前
用 Next.js 和 Redis 撸一个 Markdown 笔记系统:RSC 实战与组件化拆解
前端·redis·next.js
渣波22 分钟前
重构旅行体验:基于 React 的 AI 旅游助手对话系统实战解析
前端·javascript
今日无bug25 分钟前
列表转树:一道题搞懂 HashMap 在算法里的价值
前端·数据结构
用户9210802628625 分钟前
5. 数据大屏实时通信第一步:为什么选择 WebSocket,以及如何接入 Socket.IO
前端