【蓝桥杯web】2022年第十三届web大学组省赛:冬奥大抽奖(真题解析)

文章描述了一个抽奖页面的问题,即点击开始按钮后,高亮旋转效果未出现,且中奖信息未显示。解决方案集中在index.js的rolling函数,需要使用jQuery更新li元素的active类以实现转动效果,并在停止转动后将中奖信息显示在id为award的元素中。已给出部分代码,需要完善以达到预期功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 题目介绍:

蓝桥云课庆冬奥需要举行一次抽奖活动,我们一起做一个页面提供给云课冬奥抽奖活动使用。

准备:

开始答题前,需要先打开本题的项目文件夹,目录结构如下:

├── css
│   └── style.css
├── effect.gif
├── index.html
└── js
    ├── index.js
    └── jquery.js

当前出现的问题是:

  1. 点击“开始”按钮没有出现高亮
  2. 旋转结束没有出现“中奖信息”

目标:

找到 index.js 中 rolling 函数,使用 jQuery 或者 js 完善此函数,达到以下效果:

  1. 点击开始后,以 class 为 li1 的元素为起点,黄色背景(.active 类)在奖项上顺时针转动。
  2. 当转动停止后,将获奖提示显示到页面的 id 为 award 元素中。获奖提示必须包含奖项的名称,该名称需与题目提供的名称完全一致
  3. 转动时间间隔和转动停止条件已给出,请勿修改。

解题思路:

抽奖礼品是由8个<li>标签按顺时针排序,因此高亮也按照<li>标签依次进行,从1~8,一共8个,分别依次为<li class="li1">......<li class="li8">添加class="active"类,每次添加前,清除自身<li>标签外的class="active"类,从而实现转盘的顺时针高亮显示的效果。

当停止转动后,将<li>标签中的文本信息写入<p id="award"></p>标签内,从而显示中奖信息。

转盘旋转停止显示中奖信息:

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

  $(`.li${time%8?time%8:8}`).addClass('active').siblings().removeClass('active')//转盘轮转

  rollTime = setTimeout(() => {
    window.requestAnimationFrame(rolling); // 进行递归动画
  }, speed);

  // time > times 转动停止
  if (time > times) {
    $('#award').text($(`.li${time%8?time%8:8}`).text()) //显示中奖信息
    clearInterval(rollTime);
    time = 0;
    return;
  }
}

成功完成!!

如有不合理的地方,欢迎各位大牛提出指正!

笔芯ღ( ´・ᴗ・` )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值