本文主要是介绍蓝桥杯(Web大学组)2022省赛真题:冬奥大抽奖,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
使用模板字符串,借助time的值选择添加或移除样式的盒子,由于盒子的类名最多为li9,所以要将time的值取余,且判断余数为0时,就取1,否则会获取空值报错
`.ul .li${time%9!=0?time%9:1}`
代码:
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;}
}
这篇关于蓝桥杯(Web大学组)2022省赛真题:冬奥大抽奖的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!