原生js实现抽奖小游戏


Posted in Javascript onJune 27, 2019

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

1、HTML结构代码如下:

<div class="wrapper">
 <ul class="box"></ul>
 <button class="start">开始点名</button>
 <button class="stop">停止</button>
 <div class="choose">
  <span class="niu">幸运的的你</span>
  <img src="~/Content/img1/1.gif" />   
  <span class="name"></span>
 </div>
</div>

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 < arr.length; i++) {
 // 利用字符串拼接
 str += "<li>" + arr[i] + "</li>";
}
// 将拼接后的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 < oLi.length; j++) {
   oLi[j].className = "";
  }
  // 为随机选择的li设置选中的class名
  oLi[i].className = "change";
 }, 1);
};

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、效果图

原生js实现抽奖小游戏

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

Javascript 相关文章推荐
javascript textContent与innerText的异同分析
Oct 22 Javascript
jquery获得下拉框值的代码
Aug 13 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
js判断ie版本号的简单实现代码
Mar 05 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
Aug 27 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 Javascript
浅谈jQuery 选择器和dom操作
Jun 07 Javascript
第五篇Bootstrap 排版
Jun 21 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
Apr 26 Javascript
关于Stream和Buffer的相互转换详解
Jul 26 Javascript
详解vue项目的构建,打包,发布全过程
Nov 23 Javascript
JavaScript实现图片放大镜效果
Jun 27 #Javascript
详解Jest结合Vue-test-utils使用的初步实践
Jun 27 #Javascript
微信小程序自定义组件实现环形进度条
Nov 17 #Javascript
vue + typescript + 极验登录验证的实现方法
Jun 27 #Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
Jun 27 #Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
Jun 27 #Javascript
ES6 let和const定义变量与常量的应用实例分析
Jun 27 #Javascript
You might like
什么是MVC,好东西啊
2007/05/03 PHP
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
php向js函数传参的几种方法
2014/08/10 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
取得传值的函数
2006/10/27 Javascript
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
js function定义函数使用心得
2010/04/15 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
Dojo获取下拉框的文本和值实例代码
2016/05/27 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
pycharm 使用心得(四)显示行号
2014/06/05 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
python抽取指定url页面的title方法
2018/05/11 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
保护环境建议书400字
2014/05/13 职场文书
廉洁校园实施方案
2014/05/25 职场文书
公务员检讨书
2014/11/01 职场文书
委托公证书格式
2015/01/26 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
netty 实现tomcat的示例代码
2022/06/05 Servers