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)
   }
  }
 }

总结

以上就是本文的全部内容,希望这段代码能对各位的学习有所帮助,同时也欢迎大家继续支持本站。

作者最新文章