思路:
使用模板字符串,借助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;
}
}