写在前面:本文内容如题,自己做的一个demo,倒计时和获取实时时间在许多场景都用的到,所以还算蛮实用的,需要的朋友可以做个参考。
效果图:
代码解析:
html代码1
2
3
4
5
6
7
8
9
10
11
12<body onload="startTime()">
<div class="box">
<div class="time">请等待<span id="dd">6</span>秒</div>
<!--设置时间长一点,不然一直跳转很烦-->
![](aaa.png)
<div class="id-box">
<div id="time"></div>
<div id="date"></div>
</div>
<p>更多·更全·更好用</p>
</body>
js倒计时代码1
2
3
4
5
6
7
8
9
10 function run(){
var s = document.getElementById("dd");//获取dom,并获得数字
if(s.innerHTML == 1){// 当dom==0的时候,跳转链接并且暂停函数
window.location.href = "https://www.baidu.com/index.php?tn=98012088_3_dg&ch=1";
clearInterval(run());//暂停setInterval调用的run()函数
}
s.innerHTML = s.innerHTML -1;//跑一秒减一个数字
}
window.setInterval("run();", 1000);//调用时间函数, 一秒跑一次
`
上面基本上每一行都有注释,所以我就为不知道的朋友写点定义和自己的理解,知道的朋友也可以加深点印象。
innerHTML定义和用法:
innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML。
作用意思就是删除原来的样式,插入html的文字之类的
(w3c解释:http://www.w3school.com.cn/jsref/prop_tablerow_innerhtml.asp)
setInterval定义和用法
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
(w3c解释:http://www.jb51.net/shouce/htmldom/jb51.net.htmldom/htmldom/met_win_setinterval.asp.html)
clearInterval定义和用法
clearInterval() 方法可取消由 setInterval() 设置的 timeout。(就是暂停的意思,这里是到了一秒就暂停住了,不再往下数了。)
clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。(这里的ID值是run()相当于获取这个dom。)
(w3c解释:http://www.w3school.com.cn/jsref/met_win_clearinterval.asp)
ps:还有不懂的可以把我的demo复制到本地,自己演示一下。
html代码在上面。
获取实时时间js代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27function checkTime(i){
if (i<10){
i = "0" + i;
// 当数值小于10的时候,在i前面加个0字符串。
}return i;
}
function startTime(){//onload事件
var today = new Date();
var y = today.getFullYear();
var month = today.getMonth();
//获取当前时间。get。
var d = today.getDate();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
// add a zero in front of numbers<10
month =checkTime(month+1);//因为月份是0-11月份,+1是把区间定在1-12月份,毕竟没有0月份,笑。
d = checkTime(d);
h =checkTime(h);
m =checkTime(m);
//将函数checkTime作用于时间变量,当变量小于10的时候将再变量前面加个字符串0
s =checkTime(s);
document.getElementById("time").innerHTML = h+":"+m+":"+s;//将实时时间结合字符串写出来。
document.getElementById("date").innerHTML = y+"/"+month+"/"+d;
t=setTimeout("startTime()",1000);// 每隔1000毫秒,再调用一下这个函数,刷新一下时间
}
`
这个比较简单,在w3c上面演化出来的。
w3cDate对象:http://www.w3school.com.cn/jsref/jsref_obj_date.asp
checkTime(i):这里主要是符合我们看时间的习惯,比如18点05分。这里的0就是这个函数的”0”字符串。
onload事件:页面加载之后立即执行一段 JavaScript:
核心思想就是:获取实时的时间,然后通过+操作符,把他们链接起来,并跟html关联,使其呈现出来。
其他的,在注释里面都介绍的很清楚了,不会的,自己写一个试试就知道了。
demo链接:https://obkoro1.github.io/article-demo/js-time/time-countDown.html
以上。
最后又到了观众朋友们最喜欢的求赞求关注环节:希望看完的朋友点个喜欢,想关注我这个菜鸡是如何成长的也可以关注一下我,基本上每个月都不会少于十五篇文章(看到干货我也会进行分享)。码字不易,感谢支持,感激不尽!
ps:如果希望我写哪方面的文章可以在底下评论,或者是私信我,虽然写的不好,但我就当这是记录自己成长的一种方式咯。(前提是我会了,如果不会我也会记下来,等会了的时候再更出来。)
简书主页链接,csdn博客主页链接