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 24 Javascript
基于jquery的回到页面顶部按钮
Jun 27 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
Jun 24 Javascript
基于jQuery实现的QQ表情插件
Aug 25 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
Sep 14 Javascript
浅析JS运动
Dec 28 Javascript
每日十条JavaScript经验技巧(二)
Jun 23 Javascript
javascript动画之磁性吸附效果篇
Dec 09 Javascript
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
js使用formData实现批量上传
Mar 27 Javascript
JS实现页面跳转与刷新的方法汇总
Aug 30 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
Apr 09 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
php fread函数使用方法总结
2019/05/28 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
python中实现数组和列表读取一列的方法
2018/04/03 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
Python将字典转换为XML的方法
2020/08/01 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
大客户销售经理职责
2013/12/04 职场文书
给导游的表扬信
2014/01/10 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
学校推普周活动总结
2015/05/07 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
pytorch中的 .view()函数的用法介绍
2022/03/17 Python