专业编程基础技术教程

网站首页 > 基础教程 正文

JavaScript笔记——定时器 js的定时器

ccvgpt 2024-11-05 09:47:11 基础教程 5 ℃

定时器类型及语法

  • setTimeout 只执行一次的定时器
  • clearTimeout 关闭执行一次的定时器
  • setInterval 反复执行的定时器
  • clearInterval 关闭反复执行的定时器

简单用法:

//定时器调用函数,并给定时器命名
var time1 = setTimeout(myalert,2000); 
var time2 = setInterval(myalert,2000);
//停止指定定时器
clearTimeout(time1);
clearInterval(time2);
function myalert(){
 alert('ok!');
}
//简写(匿名函数代替即可)
var time1 = setTimeout(
 function(){
 alert('ok!');
 },2000);

实用的例子:

1、 动态显示当前时间

JavaScript笔记——定时器 js的定时器

效果图:

<script type="text/javascript">
 window.onload = function(){ 
 var oDiv = document.getElementById('div1');
 function timego(){
 var now = new Date();
 var year = now.getFullYear();
 //0-11月
 var month = now.getMonth()+1;
 var date = now.getDate();
 //0-6周,0是周日
 var week = now.getDay();
 var hour = now.getHours();
 var minute = now.getMinutes();
 var second = now.getSeconds();
 var str = '当前时间是:'+ year + '年'+month+'月'+date+'日 '+toweek(week)+' '+todou(hour)+':'+todou(minute)+':'+todou(second);
 //修改div内容为str
 oDiv.innerHTML = str;
 }
 //第一秒的时候没有执行,要先执行一下
 timego();
 setInterval(timego,1000);
 }
 //‘周’格式
 function toweek(n){
 if(n==0)
 {
 return '星期日';
 }
 else if(n==1)
 {
 return '星期一';
 }
 else if(n==2)
 {
 return '星期二';
 }
 else if(n==3)
 {
 return '星期三';
 }
 else if(n==4)
 {
 return '星期四';
 }
 else if(n==5)
 {
 return '星期五';
 }
 else
 {
 return '星期六';
 }
 }
 //时分秒小于10的加‘0’
 function todou(n){
 if(n<10)
 {
 return '0'+n;
 }
 else
 {
 return n;
 }
 }
</script>
......
<div id="div1"></div>

2、倒计时

效果图:

<script type="text/javascript">
 window.onload = function(){
 var oDiv = document.getElementById('div1');
 function timeleft(){
 var now = new Date();
 //月份要减1
 var future = new Date(2019,0,1,24,0,0);
 //parseInt取整
 var lefts = parseInt((future-now)/1000); 
 var day = parseInt(lefts/86400);
 var hour = parseInt(lefts%86400/3600);
 var min = parseInt(lefts%86400%3600/60);
 var sec = lefts%60;
 str = '距离2019年1月1日晚24点还剩下'+day+'天'+hour+'时'+min+'分'+sec+'秒';
 //修改div内容为str
 oDiv.innerHTML = str; 
 }
 timeleft();
 setInterval(timeleft,1000); 
 }
</script>

Tags:

最近发表
标签列表