原生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 相关文章推荐
jQuery textarea的长度进行验证
May 06 Javascript
JS 判断undefined的实现代码
Nov 26 Javascript
jQuery的选择器中的通配符使用介绍
Mar 20 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
Jun 09 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
Jquery判断form表单数据是否变化
Mar 30 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
三种方式实现瀑布流布局
Feb 10 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
Mar 23 Javascript
Javascript中的async awai的用法
May 17 Javascript
详解node单线程实现高并发原理与node异步I/O
Sep 21 Javascript
Vue CLI3中使用compass normalize的方法
May 30 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
Python栈类实例分析
2015/06/15 Python
Python自动扫雷实现方法
2015/07/25 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
简单了解Python write writelines区别
2020/02/27 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
大专应届生个人的自我评价
2013/11/21 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
社团文化节邀请函
2014/01/10 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
学校教师安全责任书
2014/07/23 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python