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 相关文章推荐
javascript String 对象
Apr 25 Javascript
JS实现往下不断流动网页背景的方法
Feb 27 Javascript
Jquery使用css方法改变样式实例
May 18 Javascript
js鼠标点击图片切换效果代码分享
Aug 26 Javascript
Java Mybatis框架入门基础教程
Sep 21 Javascript
jQuery实现带分组数据的Table表头排序实例分析
Nov 24 Javascript
JavaScript隐式类型转换
Mar 15 Javascript
layui导航栏实现代码
May 19 Javascript
node.js使用redis储存session的方法
Sep 26 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
May 20 Javascript
基于javascript实现移动端轮播图效果
Dec 21 Javascript
JS实现扫雷项目总结
May 19 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定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
python中hashlib模块用法示例
2017/10/30 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
python 为什么说eval要慎用
2019/03/26 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
ipad上运行python的方法步骤
2019/10/12 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
经典演讲稿范文
2013/12/30 职场文书
新学期开学演讲稿
2014/05/24 职场文书
初中毕业感言300字
2015/07/31 职场文书
Nginx安装配置详解
2022/06/25 Servers