发表于: 2017-04-19 22:45:24
1 1295
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
完成任务2 桌游精灵身份发放
完全理解使用JavaScript进行页面跳转;
使用JavaScript对 input[type="range"]实现自定义(滑动条)样式 ;
实现JavaScript的数组乱序将杀手和平民身份打乱,准备分配给1-N号玩家;
明天计划的事情:(一定要写非常细致的内容)
任务3:桌游精灵查看身份
进一步学习页面间数据传递;
如何根据需要显示和隐藏视图;
JS对DOM样式和内容进行更复杂的操作
遇到的问题:(遇到什么困难,怎么解决的)
//点击"去分牌"按钮时先检查是否设置玩家身份
document.getElementById("allot").onclick = function allot() {
if (allPlayer != null) {
window.location.href = "show.html";
//已配置身份转到下一个页面
} else {
alert("请先点击设置玩家身份哦");
}
}
;
// $("allot").click(function() {
// if (allPlayer != null) {
// window.location.href = "show.html";
// //已配置身份转到下一个页面
// } else {
// alert("请先点击设置玩家身份哦");
// }
// });
// jQuery没有实现?
收获:(通过今天的学习,学到了什么知识)
1. 如何使用JavaScript进行页面跳转
/**
* Edited by zhuan_f on 4/19/2017.
*/
//获取"简化版"按钮的id,触发点击事件,跳转到参数设置页面
document.getElementById("sample").onclick = function() {
window.location.href = "setting.html";
}
jQuery 实现页面跳转
//获取"简化版"按钮的id,触发点击事件,跳转到参数设置页面
$("sample").click(function(){
window.location.href = "setting.html";
})
2. 使用JS对input等页面元素进行更复杂的操作; input[type="range"]实现自定义(滑动条)样式
range是HTML5中新出现的滑块控件,不过这个控件的原始样式略丑,所以想对它进行一些改造。需要注意的是Internet Explorer 9及更早IE版本并不支持这个控件。
滑动条用法很简单,如下所示:
<input type="range" name="range" id="range" min="4" max="18" step="1" value="8" autofocus="">
常用属性如下:
属性 | 描述 |
---|---|
max | 设置或返回滑块控件的最大值 |
min | 设置或返回滑块控件的最小值 |
step | 设置或返回每次拖动滑块控件时的递增量 |
value | 设置或返回滑块控件的 value 属性值 |
defaultValue | 设置或返回滑块控件的默认值 |
autofocus | 设置或返回滑块控件在页面加载后是否应自动获取焦点 |
美化滑动控件,需要完成以下的五个步骤:
1. 去除系统默认的样式
这是美化滑动控件的第一步,这步操作是为了不使用原有的样式,使之后的自定义样式有效。代码如下所示,不过要注意的是对基于不同内核的浏览器,如Chrome, Safari, Opera和Firefox等,滑块要分别移除默认样式。
2. 给滑动轨道(track)添加样式
3 给滑块(thumb)添加样式
- 4. 根据滑块所在位置填充进度条;(JavaScript实现难度较大)
- 5. 实现多浏览器兼容(CSS属性前缀)。
/* 滑动轨道样式*/
input[type=range] {
width: 70%;
/* 滑竿宽度 */
margin: 0 1rem;
/* width: 73%; */
height: 0.2rem;
/* 滑杆高度 */
-webkit-appearance: none;
-moz-appearance: none;
/* 滑杠也要移除默认样式 */
background: linear-gradient(#fcc671, #fcc671) no-repeat;
/* background-size: 0% 100%; */
outline: none;
/* 去除轮廓 */
}
/* 滑块样式 */
input[type=range]::-webkit-slider-thumb {
width: 62px;
height: 38px;
cursor: pointer;
background: url("../img/setting-range.png");
/* 滑块图片 */
-webkit-appearance: none;
-moz-appearance: none;
/* 滑块也要移除默认样式 */
}
3.实现JavaScript的数组乱序将杀手和平民身份打乱,准备分配给1-N号玩家;
/*
将杀手和平民身份打乱,准备分配给1-N号玩家身份
*/
var identifyShow = document.getElementById("identifyShow");
//获取显示玩家身份区域的值
var identifyGet = document.getElementById("identifyGet");
//获取点击设置按钮的值
var allPlayer;
var player = "";
identifyGet.onclick = function identifyGet() {
player = "";
//清空显示区域的元素
var killer = [];
//杀手数组的声明
var civy = [];
//平民数组的声明
if (textNum.value >= 4 && textNum.value <= 8) {
//不同人数范围设置不同的杀手数量
killer.length = 1;
} else if (textNum.value >= 9 && textNum.value <= 11) {
killer.length = 2;
} else if (textNum.value >= 12 && textNum.value <= 15) {
killer.length = 3;
} else if (textNum.value >= 16 && textNum.value <= 18) {
killer.length = 4;
} else {
alert('人数不满足条件,请重新设置人数哦');
//之前已经判断人数后,几乎不可能出现,但是为了保险起见
}
for (var i = 0; i < killer.length; i++) {
//生成杀手数组
killer[i] = "杀手";
}
for (var j = 0; j < textNum.value - killer.length; j++) {
//生成平民数组
civy[j] = "平民";
}
//将杀手和平民的数组合并并将数组的顺序打乱后输出
var all = killer.concat(civy);
function randomSort(a, b) {
return Math.random() > .5 ? -1 : 1;
}
all.sort(randomSort);
//利用随机函数产生一个随机数字,再传入sort()取得随机打乱的数组
console.log(all);
for (var m = 0; m < all.length; m++) {
//输出打乱的数组,即分配玩家身份,且在页面中显示
if (all[m] == "杀手") {
player += "<li><span></span>" + (m + 1) + "号" + " " + all[m] + "</li>";
} else {
player += "<li><i></i>" + (m + 1) + "号" + " " + all[m] + "</li>";
}
// console.log(player);
identifyShow.innerHTML = player;
//设置显示区域的html
}
allPlayer = JSON.stringify(all);
//使用json把js对象转换为字符串
sessionStorage.all = allPlayer;
//把字符串储存到缓存中
}
;
评论