原生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常考语句107条收集
Mar 09 Javascript
读jQuery之四(优雅的迭代)
Jun 20 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
Jun 15 Javascript
jQuery中height()方法用法实例
Dec 24 Javascript
整理Javascript流程控制语句学习笔记
Nov 29 Javascript
详解打造 Vue.js 可复用组件
Mar 24 Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
Jul 21 Javascript
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
浅谈vuex中store的命名空间
Nov 08 Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 Javascript
vue实现可移动的悬浮按钮
Mar 04 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
php下获取http状态的实现代码
2014/05/09 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
JavaScript修改css样式style动态改变元素样式
2013/12/16 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
python列表操作之extend和append的区别实例分析
2015/07/28 Python
python:socket传输大文件示例
2017/01/18 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
python3调用R的示例代码
2018/02/23 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
机电专业毕业生求职信
2013/10/27 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
详解Python为什么不用设计模式
2021/06/24 Python
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server