当前位置: 首页 > article >正文

js制作九宫格抽奖功能

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

通过点击按钮,可以开始或停止抽奖的功能。其中,抽奖的动画效果是通过定时器实现的,每隔一段时间改变当前选中项的背景色来模拟抽奖的过程。当停止抽奖时,定时器会被清除,当前选中项的背景色会还原。


http://www.kler.cn/a/132817.html

相关文章:

  • 【MQTT.fx 客户端接入 阿里云平台信息配置】
  • 【Android】EventBus事件总线用法浅析
  • 技术理论||02空中三角测量
  • 卷径计算(基于卷径变化微分方程计算实时卷径)
  • 海康大华宇视视频平台EasyCVR私有化视频平台服务器选购主要参数有哪些?
  • Python 打包教程:从零开始构建可分发的Python包
  • 如何通过python封装接口商品ID采集商品详情数据
  • 开发知识点-前端-webpack
  • TensorRt推理加速框架Python API服务器部署教程以及运行Helloworld程序
  • 修完这个 Bug 后,MySQL 性能提升了 300%
  • C++加持让python程序插上翅膀——利用pybind11进行c++和python联合编程示例
  • 鸿蒙4.0开发笔记之DevEco Studio如何使用Previewer窗口预览器(一)
  • PDF文件中更改 PDF 文本颜色的最有效解决方案
  • (论文阅读40-45)图像描述1
  • Python几类并行方法比较
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • 一款.NET开源的小巧、智能、免费的Windows内存清理工具 - WinMemoryCleaner
  • 微服务测试怎么做
  • vue2【axios请求】
  • WPF中有哪些布局方式和对齐方法
  • Vue3+Vite实现工程化,attribute属性渲染v-bind指令
  • PyTorch技术和深度学习——四、神经网络训练与优化
  • Vim + YCM + clangd
  • 【Qt开发流程】之HelloWorld程序
  • demo(一)eureka----服务注册与提供
  • 图数据库Neo4J 中文分词查询及全文检索(建立全文索引)