js实现随机数小游戏


Posted in Javascript onJune 28, 2019

抛出随机数实现一个“谁取餐的小游戏”,供大家参考,具体内容如下

1、HTML结构代码如下

<div class="mask">
 <div class="contents">
  <div class="head">
   <p>谁去拿外卖</p>
   <a href="#" id="close">X</a>
  </div>
  <div class="cont-wapper">
   <div class="cont-inner">
    <h2></h2>
    <button></button>
    <div class="sign">随机到最小数字的人去拿外卖</div>
    <ul>
     <li class="takeout-list">扔出了一个2</li>
     <li>扔出了一个3</li>
    </ul>
   </div>
  </div>
 </div>
</div>

2、css样式代码如下

.mask { 
 position: fixed;left: 0;top: 0;
 width: 100%;height: 100%;
 background: rgba(0, 0, 0, 0.5);
}

.contents {
 position: absolute;top: 54px;left: 50%;
 width: 360px;border: 1px solid gray;background: white;
 border-radius: 5px;transform: translateX(-50%); 
}
.head {
 box-sizing: border-box;width: 100%;height: 44px;
 padding: 10px;border-bottom: 1px solid #eee; 
}
.head p {
 float: left;
}
.head a {
 float: right;width: 16px;
 line-height: 24px;color: #ccc;
}
.head a:hover {
 color: blue;
}
.cont-wapper {
 width: 300px;color: #555;
 padding: 15px 30px;margin: 0 auto;
}
 .cont-inner {
 font-size: 12px;background: #dbf0fa;
 padding-top: 15px;margin: 0 auto;
 margin-bottom: 10px;box-shadow: 1px 1px 2px #ddd;
}
 .cont-inner h2 {
 width: 186px;height: 188px;margin: 0 auto;
 background: url('../../Content/img1/ico.png') 0 -120px no-repeat;
}
.cont-inner button {
 display: block;cursor: pointer;/*箭头变手*/
 outline:none;/*去掉浏览器默认的外边框*/
 width: 271px;height: 40px;border: 0;
 background: url('../../Content/img1/ico.png') 0 0 no-repeat;
 margin: -45px auto 15px;
}
 .sign {
 position: relative;text-align: center;
 color: #777;margin-bottom: 10px;
}
/*after伪元素在元素之后添加内容*/
/*content 属性与 :before 及 :after 伪元素配合使用,来插入生成内容*/
.sign::after {   
 content: '';display: block;
 position: absolute;width: 40px;height: 7px;
 background: #ccc;right: 16px;top: 5px;
}
/*before伪元素在元素之前添加内容。*/
/*content 属性与 :before 及 :after 伪元素配合使用,来插入生成内容*/
 .sign::before {
 content: '';display: block;position: absolute;
 width: 40px;height: 7px;
 background: #ccc;left: 16px;top: 5px;
}
 .cont-inner ul {
 height: 180px;margin: 0 10px;
 padding: 5px 5px 0 5px;
 overflow: hidden;/*隐藏滚动条*/
}
.cont-wapper li.takeout-list {
 color: #fe5a23;font-weight: 600;
 height: 19px;line-height: 19px;
 background: url('../../Content/img1/ico.png') 0 -320px no-repeat;
}
.cont-wapper li {
 padding-left: 5px;
}

3、js代码获取元素

var button = document.getElementsByTagName('button')[0];//按钮
var ullist = document.getElementsByTagName('ul')[0];
var arrList = [];//创建数组
var mask = document.getElementsByClassName('mask')[0];
var text = document.getElementsByClassName('contents')[0];
var min = NaN;//最小值
var index;//索引值

4、js代码实现鼠标滑过的时候背景的动态变化

//鼠标按下事件
button.onmousedown = function () {
 this.style.backgroundPosition = '0 ' + (-80) + 'px';
 cteatNumer()//调用生成数组的方法
 //鼠标放开事件
 this.onmouseup = function () {
  this.style.backgroundPosition = '0 ' + (-40) + 'px';
 }
};
//鼠标移入事件
button.onmouseenter = function () {
 this.style.backgroundPosition = '0 ' + (-40) + 'px';
 //鼠标移出事件
 this.onmouseleave = function () {
  this.style.backgroundPosition = '0 ' + 0 + 'px';
 }
};

5、js代码实现在数组输出最小值

//在数组中输出最小值
Array.prototype.min = function () {
 var min = this[0];//目前生成的数值
 var len = this.length;//数组目前的长度
 for (var i = 1; i < len; i++) {
  if (this[i] < min) {
   min = this[i];
  }
 }
 return min;
}

6、js代码实现取出数组的最小值

//数组取最小值
function cteatNumer() {
 var num = Math.floor(Math.random() * 100);//0-100之间随机生成一个精准的实数
 if (min == num) {//判断是否有最小值重复 
  cteatNumer();//有重复就重新生成
  return;
 }  
 arrList.push(num);//在数组最下面显示生成的值
 if (arrList.length > 11) {//数组长度超出11
  if (num > min && index == 0) {//当最小值索引值为0时
   arrList.splice(1, 1);//从数组索引值为1开始,删除第2个数值
  } else {
   arrList.shift();//数组往上移动
  }
 }
 min = arrList.min();//最小值
 index = arrList.indexOf(min);//最小值在数组中的索引
 refurbishDom(arrList, index);//调用refurbishDom方法
}

7、用for循环遍历当前数组的长度

function refurbishDom(arr, index) {
 ullist.innerHTML = '';//清空ul所有的数值
 var len = arr.length;//获取当前数组的长度
 for (var i = 0; i < len; i++) {//显示对应索引的数值
  ullist.innerHTML += '<li>' + '扔出了一个' + arr[i] + '</li>';
 }
 //在ul数组中动态指定最小值
 ullist.getElementsByTagName('li')[index].className = 'takeout-list';
}

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

Javascript 相关文章推荐
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
javascript实现table表格隔行变色的方法
May 13 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
js 实现数值的千分位及保存小数方法(推荐)
Aug 01 Javascript
javascript中this关键字详解
Dec 12 Javascript
详解JS中的立即执行函数
Feb 24 Javascript
vue.js中指令Directives详解
Mar 20 Javascript
React利用插件和不用插件实现双向绑定的方法详解
Jul 03 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
js 取消页面可以选中文字的功能方法
Jan 02 Javascript
简单实现节流函数和防抖函数过程解析
Oct 08 Javascript
vue实现淘宝购物车功能
Apr 20 Javascript
Node爬取大批量文件的方法示例
Jun 28 #Javascript
JavaScript实现单英文金山打字通
Jul 24 #Javascript
javascript实现导航栏分页效果
Jun 27 #Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 #Javascript
原生js实现抽奖小游戏
Jun 27 #Javascript
JavaScript实现图片放大镜效果
Jun 27 #Javascript
详解Jest结合Vue-test-utils使用的初步实践
Jun 27 #Javascript
You might like
最新的php 文件上传模型,支持多文件上传
2009/08/13 PHP
批量修改RAR文件注释的php代码
2010/11/20 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
python基于multiprocessing的多进程创建方法
2015/06/04 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
Python找出最小的K个数实例代码
2018/01/04 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
python 实现绘制整齐的表格
2019/11/18 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
python import 上级目录的导入
2020/11/03 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
一道Delphi面试题
2016/10/28 面试题
医学院四年学习生活的自我评价
2013/11/06 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
2016入党心得体会范文
2016/01/06 职场文书
高三物理教学反思
2016/02/20 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python