JavaScript 实现九宫格抽奖功能详解
作者:半夏时间:2026-10-23 16:48:53浏览:259
本文介绍如何使用JavaScript和CSS实现一个九宫格抽奖功能。通过定义HTML结构,利用CSS设置网格布局及选中状态的视觉反馈,并结合JS控制旋转逻辑与定时器,实现点击抽奖后的随机停止效果。代码包含完整的DOM获取、事件监听及动画控制逻辑,适合前端初学者参考学习。
九宫格抽奖功能概述
本文分享了一段使用JavaScript实现九宫格抽奖的具体代码示例,供读者参考和学习。
HTML结构构建
<div id="contaner">
<div id="one">一块钱</div>
<div id="two">谢谢惠顾</div>
<div id="three">下去写作业</div>
<div id="four">一局游戏</div>
<div id="five">点击抽奖</div>
<div id="six">两块钱</div>
<div id="seven">下去写作业</div>
<div id="eight">谢谢惠顾</div>
<div id="nigth">两局游戏</div>
</div>
首先是CSS样式部分的定义。
CSS样式与动画设计
#contaner {
width:606px;
height:606px;
border:1px solid #cccccc;
margin:40px auto;
}
#contaner div {
width:200px;
height:200px;
background:#09f;
text-align:center;
color:#fff;
font-size:16px;
font-weight:bold;
line-height:200px;
float:left;
border:1px solid #cccccc;
}
#contaner #five {
transition:all 0.5s ease-in-out 0s;
}
#contaner #five:hover {
cursor:pointer;
font-size:25px;
transform:scale(1.2) rotate(360deg);
background:#fff;
color:#09f;
}
.ys {
transform:scale(1.2);
box-shadow:0 0 0 200px red inset;
}
接下来是核心的JavaScript逻辑代码。
JavaScript逻辑实现
window.onload = function() {
var $ = function(id) {
return document.getElementById(id);
}
var contaner = $('contaner');
var divs = contaner.getElementsByTagName('div');
var one = $('one');
var two = $('two');
var three = $('three');
var four = $('four');
var five = $('five');
var six = $('six');
var seven = $('seven');
var eight = $('eight');
var night = $('night');
var k = 0;
var flag = true;
five.onclick = function() {
if (flag) {
var l = Math.ceil(Math.random() * 10000);
clearInterval(time);
var time = setInterval(function() {
for (var i = 0; i < divs.length; i++) {
divs[i].className = '';
}
divs[k].className = 'ys';
switch (k) {
case 0:
case 1:
k++;
break;
case 2:
case 5:
k += 3;
break;
case 8:
case 7:
k--;
break;
case 6:
case 3:
k -= 3;
break;
}
}, 100)
flag = false;
var jc = setTimeout(function() {
clearInterval(time);
flag = true;
}, l)
}
}
}
总结
以上就是本文的全部内容,希望这段代码能对各位的学习有所帮助,同时也欢迎大家继续支持本站。
作者最新文章
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
