发表于: 2017-02-14 23:36:10
1 1211
任务2算是完成,
页面跳转使用的显示隐藏由于会多次使用,封装成一个函数
以前接触过其他编程,习惯了重复使用的元素在公用位置建立,像class对象获取定位,但是见不少前辈的视频基本都是用得着的时候再获取,现在还不知道是否有问题,以后再注意
焦点事件和键盘事件同时使用,感觉有比我现在更好的用法,百度不好找啊……
数组的随机排列方法不少,有.push/.splice用法的方法,这次先用最简单的交换位置方式处理
任务2的要点基本这些了,接下来准备搞任务3.
完整代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
*{margin:0px; padding:0px;}
body{width:400px; height:600px;}
.top{
width:100%;
height:50px;
background-color:#46c5e4;
}
.page1{
background-color:#f2f3f3;
}
.game{
width:96%;
margin:0 auto;
background-color:#fefefe;
border-radius:5px;
}
.game-last{
display:block;
height:60px;
line-height:60px;
text-align:center;
margin-top:20px;
font-size:20px;
cursor:pointer;
background:#fefefe url(img/%E5%8F%B3%E7%AE%AD%E5%A4%B4.png) no-repeat right;
}
.game-change{
height:430px;
margin-top:30px;
}
/*****************************************/
.page2{
background-color:#fcfcfc;
display:none;
}
.return{
display:block;
height:50px;
width:40px;
border:none;
cursor:pointer;
background:url(img/return.png);
}
.player{
width:96%;
margin:0 auto;
text-align:center;
}
.mes-top{
height:40px;
line-height:44px;
border-bottom:2px #999 solid;
}
.mes{
padding-top:20px;
height:250px;
border-bottom:1px #999 solid;
}
.mes div{
float:left;
width:48%;
}
.mes span{
display:inline-block;
}
.killer,.civilian{
width:20px;
}
.num-player{
height:150px;
line-height:180px;
}
.num-size{
font-size:18px;
}
.num{
display:inline-block;
margin:10px;
width:35px;
color:#f8bd4a;
font-size:18px;
}
.num-limit{
font-size:12px;
color:#f8bd4a;
}
.num-ok{
display:block;
width:96%;
height:50px;
line-height:50px;
background-color:#f8bd4a;
color:#fff;
font-size:28px;
border:none;
border-radius:5px;
cursor:pointer;
}
/******************************************/
.page3{
background-color:#fcfcfc;
display:none;
}
</style>
</head>
<body>
<div class="page1">
<div class="top"></div>
<input type="button" class="game-last game" value="上次游戏:杀人游戏简单版" />
<div class="game-change game"></div>
</div>
<div class="page2">
<div class="top"><input type="button" class="return-page1 return" /></div>
<div class="mes-top player"><span>玩家配比</span></div>
<div class="mes player">
<div>
<img src="img/杀手.png" /><span>杀手</span><span class="killer"></span><span>人</span>
</div>
<div>
<img src="img/平民.png" /><span>平民</span><span class="civilian"></span><span>人</span>
</div>
</div>
<div class="num-player player">
<span class="num-size">请输入玩家数量</span><input type="text" class="num" /><span class="num-limit">玩家数量为4-18</span>
</div>
<div class="player"><input type="button" class="num-ok" value="去发牌" /></div>
</div>
<div class="page3">
<div class="top"><input type="button" class="return-page2 return" /></div>
<div class="mes-pic"><span>下个任务处理,敬请期待</span></div>
</div>
<script>
var gameChange = document.getElementsByClassName('game-last')[0];
var returnPage1 = document.getElementsByClassName('return-page1')[0];
var returnPage2 = document.getElementsByClassName('return-page2')[0];
var page1 = document.getElementsByClassName('page1')[0];
var page2 = document.getElementsByClassName('page2')[0];
var page3 = document.getElementsByClassName('page3')[0];
var numInput = document.getElementsByClassName('num')[0];
var numKiller = document.getElementsByClassName('killer')[0],
numCivilian = document.getElementsByClassName('civilian')[0];
var numOk = document.getElementsByClassName('num-ok')[0];
var aNum = [];
var gameOk = false;
gameChange.onclick = function(){
pageShow(page2);
}
returnPage1.onclick = function(){
pageShow(page1);
}
returnPage2.onclick = function(){
pageShow(page2);
}
numOk.onclick = function(){
if(gameOk == true){pageShow(page3);}
else{alert("请确定人数");}
}
document.onkeydown = function(event){
var e = event || window.event || arguments.callee.caller.arguments[0];
if(e&&e.keyCode == 13){
if(document.activeElement.className == 'num'){
var num = numInput.value;
if(num>=4&&num<=18){
aNum = new Array(num);
var killNum = Math.ceil(num/3);
var civiNum = Math.floor(num*2/3);
numKiller.innerHTML = killNum;
numCivilian.innerHTML = civiNum;
for(var i=0; i<killNum; i++){aNum[i] = 0;}
for(var i=0; i<civiNum; i++){aNum[i+killNum] = 1;}
for(var i=0; i<aNum.length; i++){
var randomNum = parseInt(Math.random()*(num-1));
var j = aNum[randomNum];
aNum[randomNum] = aNum[i];
aNum[i] = j;
}
gameOk = true;
//输出随机数组
console.log(aNum);
}else{
gameOk = false;
alert('数据错误!请输入4-18');
}
}
}
}
function pageShow(obj){
for(var i=1; i<4; i++){
var page = "page" +i;
var pageHide = document.getElementsByClassName("page" +i)[0];
pageHide.style.display = "none";
}
obj.style.display = "block";
}
</script>
</body>
</html>
评论