JS实现倒计时功能
2015-11-21 22:54
597 查看
上午主要编写了倒计时的功能,用了两种算法,一种是最终秒数、分钟数、小时数减去当前的秒、分钟和小时,当然要重点注意的就是借位的问题。另一种算法就是将最终时间转换成秒数,当前时间转换成秒数,相减之后再换算成小时、分钟和秒,再分别显示出来。
下面是我编写的代码:
今天上课讲的一些知识:
1.全局变量是全局对象的属性。
2.像alert()、setInterval()、eval()等都是window的方法。
3.函数中返回值只有一个。
4.如果变量较多,可以定义一个对象,里面存放要定义的变量,需要的时候直接 对象名.属性名()调用。但是真正项目中要封装起来,不允许随便访问。可以用立即执行函数解决权限访问问题。
5.找错,打断点问题,打一个断点的意思就是执行代码直到你断点所在位置,若操作后在前面某个部分停止了,那么就说明停止的那个地方代码执行。
下面是我编写的代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>倒计时</title> </head> <body> <span id="time"></span> <script src="jquery-1.11.1.js"></script> <script> function Time(){ var date = new Date(); var finalhour = 15; //最终小时 var finalmin = 34; var finalsec = 0; var nowhours = date.getHours(); //当前小时 var nowmin = date.getMinutes(); var nowsec = date.getSeconds(); var showsec = 0; //显示的秒数 var showmin = 0; var showhour = 0; if(nowsec > finalsec){ //如果当前时间的秒数大于最终时间的秒数时, showsec = (finalsec + 60) - nowsec; //用最终的秒数加上60就可以减去当前的秒数,赋值给变量showsec就是剩下的秒数。 finalmin = finalmin - 1; // 因为 最终秒数 加上了60s 相当于1分钟,最终分钟就要剪掉1,相当于数学中的借位。 }else //如果不大于,就可以直接减去。 { showsec = finalsec - nowsec; } if(nowmin > finalmin){ //同理秒, 分钟也是要借位,借小时的,如果借了,小时就减1 分钟就加60之后减去当前分钟 就等于剩余分钟,不借直接减 showmin = (finalmin + 60) - nowmin; finalhour = finalhour - 1; }else { showmin = finalmin - nowmin; } showhour = finalhour - nowhours; //小时就直接减,如果被借位了 前面也已经减过了。 if(showsec<10){ showsec = "0" + showsec; //如果显示的秒小于10,就在前面加上字符串0. } if(showmin<10){ showmin = "0" + showmin; //同理 } if(showhour<10){ showhour = "0" + showhour; } $("#time").html("距离中午12点整还有:" + showhour + "小时" + showmin + "分钟" + showsec + "秒"); } Time(); setInterval(Time,1000); //用都换算成s的算法来计算剩余时间。 // var nowSec = nowhours * 3600 + nowmin * 60 + nowsec; // var finalSec = finalhour * 3600 + finalmin * 60 + finalsec; // var restSec = finalSec - nowSec; // var showHour = parseInt(restSec/3600); // var showMin = parseInt((restSec%3600)/60); // var showSec = (restSec%3600)%60; // if(showSec<10){ // showSec = "0" + showSec; // } // if(showMin<10){ // showMin = "0" + showMin; // } // if(showHour<10){ // showHour = "0" + showHour; // } // $("#time").html("距离15点34分还有:" + showHour + "小时" + showMin + "分钟" + showSec + "秒"); // } // Time(); // setInterval(Time,1000); </script> </body> </html>
今天上课讲的一些知识:
1.全局变量是全局对象的属性。
2.像alert()、setInterval()、eval()等都是window的方法。
3.函数中返回值只有一个。
4.如果变量较多,可以定义一个对象,里面存放要定义的变量,需要的时候直接 对象名.属性名()调用。但是真正项目中要封装起来,不允许随便访问。可以用立即执行函数解决权限访问问题。
5.找错,打断点问题,打一个断点的意思就是执行代码直到你断点所在位置,若操作后在前面某个部分停止了,那么就说明停止的那个地方代码执行。
相关文章推荐
- JSON解析 GSON解析
- JavaScript学习之路03_字符串和数组
- JavaScript 之事件处理详解
- 理解 JavaScript 的作用域链
- js中this和that
- js初学
- 18 款超酷的 HTML5 和 JavaScript 游戏引擎库
- EXTJS 6 新特性(译文)
- js对select动态添加和删除OPTION
- JavaScript设置获取和设置属性的方法
- JSWindow对象
- 精通 JS正则表达式
- JavaScript学习之路02_数据类型
- javascript 关于闭包的知识点
- js正则表达式之$1$2$3$4$5$6$7$8$9属性,返回子匹配的结果
- 常用 ajax js 表单
- json数据的解析
- js对象形式编码风格
- JavaScript学习之路01_准备
- 在VS中让JS文件显示智能感知的一个犀利方法