发表于: 2017-04-20 21:28:21
1 1189
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
进一步学习页面间数据传递;
如何根据需要显示和隐藏视图;
JS对DOM样式和内容进行更复杂的操作
明天计划的事情:(一定要写非常细致的内容)
任务4:桌游精灵法官日志和游戏结果
综合运用jquery完成更复杂的业务逻辑;
使用有限状态机来存放对象的不同状态
遇到的问题:(遇到什么困难,怎么解决的)
收获:(通过今天的学习,学到了什么知识)
了解了游戏身份的传递方式是什么样的?
//将杀手和平民的数组合并
var all = killer.concat(civy);
function randomSort() {
return Math.random() > .5 ? -1 : 1;
}
all.sort(randomSort);
//利用随机函数产生一个随机数字,再传入sort()取得随机打乱的数组
allPlayer = JSON.stringify(all);
//使用JSON.stringify()把JavaScript对象转换为JSON字符串
sessionStorage.all = allPlayer;
//把字符串储存到缓存中
JSON.stringify()
方法将一个JavaScript值转换为一个JSON字符串,如果指定了一个replacer函数,则可以替换值,或者如果指定了一个replacer数组,可选地仅包括指定的属性。
语法EDIT
JSON.stringify(value[, replacer [, space]])
参数
value
- 将要序列化成 一个JSON 字符串的值。
replacer
可选- 如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为null或者未提供,则对象所有的属性都会被序列化;关于该参数更详细的解释和示例,请参考使用原生的 JSON 对象一文。
space
可选- 指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。改值若小于1,则意味着没有空格;如果该参数为字符串(字符串的前十个字母),该字符串将被作为空格;如果该参数没有提供(或者为null)将没有空格。
返回值
一个表示给定值的JSON字符串。
var allPlayer = sessionStorage.all;
var all = JSON.parse(allPlayer);
//获取上个页面的身份信息
JSON.parse()
方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象。可以提供可选的reviver函数以在返回之前对所得到的对象执行变换。
语法EDIT
JSON.parse(text[, reviver])
参数
text
- 要被解析成JavaSctipt值的字符串,查看
JSON
对象学习的JSON 语法的说明。 reviver
可选- 如果是一个函数,则规定了原始值如何被解析改造,在被返回之前。
返回值
Object
对应给定的JSON文本。
如何根据需要显示和隐藏视图;
var clickNum = 1;
//定义点击按钮被点击的次数
var playNum = 2;
//定义玩家的号数
$("#btnShow").click(function() {
if (clickNum > 2 * all.length - 1) {
//1号玩家初始状态就是隐藏,之后每个玩家查看身份及传递身份需要点击两次按钮,所以当点击总次数超过玩家人数*2-1时,跳转到下一个页面
window.location.href = 'judge.html';
} else if (clickNum % 2 == 0) {
//当点击次数为偶数次时,显示隐藏身份页面
$('.main-show-cover').show();
$('.main-show-open').hide();
$('#playerRole').hide();
$('.main-show-open-warn').hide();
$('#playerNum').text(playNum);
$('#btnShow').text('查看' + playNum + '号身份');
playNum++;
} else {
//当点击次数为奇数次时,显示n号玩家身份信息
$('.main-show-cover').hide();
$('.main-show-open').show();
$('.main-show-open-warn').show();
$('#playerRole').show().text('角色:' + all[playNum - 2]);
if (playNum < all.length + 1) {
$('#btnShow').text('隐藏并传递给' + playNum + '号');
} else {
$('#btnShow').text('查看法官台本');
}
}
clickNum++;
//一次点击事件结束后总次数加1
});
JS对DOM样式和内容进行更复杂的操作,将玩家身份信息输出在法官日记页面
var play = '';
for (i = 0; i < all.length; i++) {
play += '<div class="main-box">' + '<div class="main-box-hide"></div>' +
'<div class="main-box-open">' + all[i] + '</div>' +
'<div class="main-box-number">' + (i + 1) + '号</div>' + '</div>';
// console.log(play);
$("main").eq(0).html(play);
}
评论