原生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 相关文章推荐
(function(){})()的用法与优点
Mar 11 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
Nov 11 Javascript
jquery 卷帘效果实现代码(不同方向)
Feb 05 Javascript
如何实现textarea里的不同文本显示不同颜色
Jan 20 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
Dec 10 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
JavaScript生成验证码并实现验证功能
Sep 24 Javascript
bootstrap读书笔记之CSS组件(上)
Oct 17 Javascript
微信小程序 使用canvas制作K线实例详解
Jan 12 Javascript
详谈js对url进行编码和解码(三种方式的区别)
Aug 16 Javascript
VuePress 中如何增加用户登录功能
Nov 29 Javascript
JavaScript 声明私有变量的两种方式
Feb 05 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
PHP中Date获取时间不正确怎么办
2008/06/05 PHP
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
PHP多例模式介绍
2013/06/24 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
Python魔术方法详解
2015/02/14 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
python回调函数中使用多线程的方法
2017/12/25 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Django使用rest_framework写出API
2020/05/21 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
小学教师办公室制度
2014/02/03 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书