HTML代码:
<div id="lottery"> <div class="lottery-item">1</div> <div class="lottery-item">2</div> <div class="lottery-item">3</div> <div class="lottery-item">4</div> <div class="lottery-item">5</div> <div class="lottery-item">6</div> <div class="lottery-item">7</div> <div class="lottery-item">8</div> <div class="lottery-item">9</div> </div> <button id="start-btn">开始抽奖</button>
CSS代码:
#lottery { display: flex; flex-wrap: wrap; width: 300px; height: 300px; margin: 0 auto; background-color: #e6e6e6; } .lottery-item { width: 100px; height: 100px; font-size: 50px; text-align: center; line-height: 100px; background-color: #fff; border: 1px solid #ccc; } .lottery-active { background-color: orange; }
JavaScript代码:
var items = document.getElementsByClassName('lottery-item'); var btn = document.getElementById('start-btn'); var index = 0; var timer = null; btn.onclick = function() { if(timer) { clearInterval(timer); timer = null; // 停止时将当前选中项背景色还原 items[index].classList.remove('lottery-active'); } else { timer = setInterval(function() { // 先将当前选中项背景色还原 items[index].classList.remove('lottery-active'); index ++; if(index > 8) { index = 0; } // 设置当前选中项的背景色 items[index].classList.add('lottery-active'); }, 100); } }
通过点击按钮,可以开始或停止抽奖的功能。其中,抽奖的动画效果是通过定时器实现的,每隔一段时间改变当前选中项的背景色来模拟抽奖的过程。当停止抽奖时,定时器会被清除,当前选中项的背景色会还原。