热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

原生js实现抽奖小游戏

这篇文章主要为大家详细介绍了原生js实现抽奖小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

这个小游戏可以设置为抽奖小游戏,也可以设置为随机点名器,这个软件实现可以多次获取同一个元素的

1、HTML结构代码如下:

    幸运的的你

    2、css样式设置页面代码如下:

    css代码不仅仅是修饰页面的美观度,还可以设置动画,使得更生动

    .wrapper {
      width: 99%;margin: 8px auto;
      border: 1px solid #ddd;text-align: center;
     }
     .box li {
      vertical-align: top;
      display: inline-block;
      width: 100px;height: 50px;
      border: 2px solid #ddd;
      border-radius: 15px;text-align: center;
      line-height: 50px; margin: 5px;
     }
     .box li.change {
      background-color: red;
      color: #fff;font-weight: bolder;
     }
     .wrapper button {
      display: inline-block;
     }
     .wrapper button {
      border: none;width: 100px;
      height: 50px;border-radius: 10px;
      cursor: pointer;outline: none;
      margin-top: 20px;font-weight: bolder;
      color: #333;background-color: #eee;
     }
     .wrapper .choose {
      position: relative;
      width: 200px;height: 180px;
      border-radius:10px;margin:12px auto;
      border: 1px solid #000;
     }
     .wrapper .choose img {
      position: absolute;bottom: 0;left: 0;
     }
     .niu{
      font-size:24px; margin:0px 0px;
     }
     .name{
      position:absolute;
      font-size:29px;top:43px;left:71px;
     }

    3、原生js取出元素

    var boxUl = document.getElementsByClassName('box')[0];
    var start = document.getElementsByClassName('start')[0];//获取点击开始按钮元素
    var stop = document.getElementsByClassName('stop')[0]//获取点击停止按钮元素
    var oLi = document.getElementsByTagName('li');//获取js插入的li标签元素
    // 将插入名字存入数组
    var arr = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"]
    // html进行 字符串拼接
    var str = '';
    // 通过for循环进行拼接
    for (var i = 0; i ";
    }
    // 将拼接后的html字符串插入到dom结构中
    boxUl.innerHTML = str;
    // 声明timer
    var timer = null;

    4、开始按钮的原生js代码如下:

    // 点击开始进行选择
    start.Onclick= function () {
     // 每次运行前清除timer
     clearInterval(timer);
     // 设置定时器
     timer = setInterval(function () {
      // 根据数组长度范围生成随机数
      var i = Math.floor(Math.random() * arr.length);
      // 先通过for循环清空所有class名
      for (var j = 0; j 
    

    5、停止按钮原生js代码如下:

    // 点击停止
    stop.Onclick= function () {
     // 清空定时器
     clearInterval(timer);
     // 找到选中的元素
     var choise = document.getElementsByClassName('change')[0];
     // 找到选中元素的内容
     var name = choise.innerText;
     // 同时为选中位置添加内容
     var nameSpan = document.getElementsByClassName('name')[0];
     nameSpan.innerText = name+"号";
    }

    6、效果图

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


    推荐阅读
    • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
    • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
    • 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细]
    • 探讨如何在映射文件中处理重复的属性字段,以避免数据操作时出现错误。 ... [详细]
    • 网络流24题——试题库问题
      题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
    • 利用无代码平台实现高效业务应用开发
      随着市场环境的变化加速,全球企业都在探索更为敏捷的应用开发模式,以便快速响应新兴的商业机遇。然而,传统的软件开发方式不仅成本高昂,而且耗时较长,这往往导致IT与业务部门之间的合作障碍,进而影响项目的成功。本文将探讨如何通过无代码开发平台解决这些问题。 ... [详细]
    • 为何Compose与Swarm之后仍有Kubernetes的诞生?
      探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
    • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
    • 本文探讨了Node.js后端开发的基础知识,包括模块源码的使用方法、前后端源码的区别以及如何在命令行环境中编译Node.js源代码。 ... [详细]
    • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
    • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
    • 本文探讨了程序员这一职业的本质,认为他们是专注于问题解决的专业人士。文章深入分析了他们的日常工作状态、个人品质以及面对挑战时的态度,强调了编程不仅是一项技术活动,更是个人成长和精神修炼的过程。 ... [详细]
    • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
    • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
    • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
    author-avatar
    烦恼的余生_538
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有