发表于: 2017-04-19 22:45:24

1 1296


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了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) + "" + "&nbsp;&nbsp;" + all[m] + "</li>";
       } else {
           player += "<li><i></i>" + (m + 1) + "" + "&nbsp;&nbsp;" + all[m] + "</li>";
       }
       //         console.log(player);
       identifyShow.innerHTML = player;
       //设置显示区域的html
   }
   allPlayer = JSON.stringify(all);
   //使用jsonjs对象转换为字符串
   sessionStorage.all = allPlayer;
   //把字符串储存到缓存中
}
;



返回列表 返回列表
评论

    分享到