原生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 相关文章推荐
firefox中用javascript实现鼠标位置的定位
Jun 17 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
Apr 25 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
Nov 15 Javascript
js对象转json数组的简单实现案例
Feb 28 Javascript
解释&amp;&amp;和||在javascript中的另类用法
Jul 28 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
javascript实现对表格元素进行排序操作
Nov 18 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
JS倒计时实例_天时分秒
Aug 22 Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 Javascript
js实现数字跳动到指定数字
Aug 25 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
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
PHP自动生成表单代码分享
2015/06/19 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
深入理解Promise.all
2018/08/08 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
python编写的最短路径算法
2015/03/25 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
python递归实现快速排序
2018/08/18 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
四年的个人工作自我评价
2013/12/10 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
出租车拒载检讨书
2015/01/28 职场文书
校长师德表现自我评价
2015/03/04 职场文书
人民检察院起诉书
2015/05/20 职场文书
礼仪培训心得体会
2016/01/22 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang