SetInterval

var timer=null;
var aNow=null;

var g_aImg=[];
var g_oImgWeek=null;
var g_aWeekName=
[
"one",
"two",
"three",
"four",
"five",
"six",
"seven"
];

window.onload=function ()
{
var oDiv=document.getElementById(‘clock‘);
var aImg=oDiv.getElementsByTagName(‘img‘);
var i=0;

for(i=0;i<aImg.length;i++)
{
if(!isNaN(parseInt(aImg[i].alt)))
{
g_aImg.push(aImg[i]);
}
}

g_aImg.push(aImg[aImg.length-2]);

aNow=getTimeArray();

for(i=0;i<g_aImg.length;i++)
{
g_aImg[i].now=-1;
}

checkSwitch();

setInterval(checkSwitch, 1000);
checkSwitch();
}

var g_iImgHeigth=0;
var g_iTarget=0;
var g_iMax=0;

function checkSwitch()
{
var i=0;

aNow=getTimeArray();

g_imgHeigth=g_aImg[0].offsetHeight;
g_iTarget=-g_imgHeigth;
g_iMax=g_imgHeigth;

timer=setInterval(doSwitch, 30);
}

function doSwitch()
{
var bEnd=false;
var i=0;

g_imgHeigth-=5;
if(g_imgHeigth<=g_iTarget)
{
g_imgHeigth=g_iTarget;
bEnd=true;
}

for(i=0;i<g_aImg.length;i++)
{
if(g_aImg[i].now!=aNow[i])
{
if(g_imgHeigth>0)
{
g_aImg[i].style.height=g_imgHeigth+‘px‘;
g_aImg[i].style.top=-(g_iMax-g_imgHeigth)/2+‘px‘;
}
else
{
if(i==g_aImg.length-1)
{
g_aImg[i].src="images/" + g_aWeekName[aNow[i]] + ".png";
}
else
{
g_aImg[i].src="images/" + aNow[i] + ".png";
}

g_aImg[i].style.height=-g_imgHeigth+‘px‘;
g_aImg[i].style.top=-(g_iMax+g_imgHeigth)/2+‘px‘;
}
}
}

if(bEnd)
{
for(i=0;i<g_aImg.length;i++)
{
g_aImg[i].now=aNow[i];
}

clearInterval(timer);
}
}

function toDouble(iNum)
{
if(iNum<10)
{
return ‘0‘+iNum;
}
else
{
return ‘‘+iNum;
}
}

function getTimeArray()
{
var oDate=new Date();
var aNumber=[];

var iYear=oDate.getYear();
var iMonth=oDate.getMonth();
var iDay=oDate.getDate();
var iHour=oDate.getHours();
var iMin=oDate.getMinutes();
var iSec=oDate.getSeconds();
var iWeek=(oDate.getDay()+6)%7;

if(iYear<1900)
{
iYear+=1900;
}

var str=‘‘+(iYear)+toDouble(iMonth+1)+toDouble(iDay)+toDouble(iHour)+toDouble(iMin)+toDouble(iSec)+iWeek;
var aChar=str.split(‘‘);

for(i=0;i<aChar.length;i++)
{
aNumber[i]=parseInt(aChar[i]);
}

return aNumber;
}

时间: 2024-10-07 02:56:55

SetInterval的相关文章

setTimeout ,setInterval

1.setInterval是间隔执行,间隔多久执行一次,执行多次 setInvertal(function(){},500) 2.setTimeout是延迟执行,执行一次 setTimeout(function(){},500) 清除定时器 param=setInterval(function(){},300) clearInterval(param)关闭定时器

AJAX短信验证码接口,setInterval,clearInterval倒计时显示

intervalId : '', count :120, sendSmsCode:function(){ var _thi = this; if(_thi.smscodeSending){ return; }else if(!$("#mobilePhone").validator().validator('check')){ return; } _thi.smscodeSending = true; var data = new Object(); data.mobile = $('#

setTimeout与setInterval

setTimeout(表达式,时间)在执行时,是在载入后的延迟指定时间去执行一次表达式,计数一次. setInterval(表达式,时间)在载入后,每隔指定的时间就执行一次表达式. 总的来说,setTimeout单次调用,setInterval多次调用. 嵌套setTimeout方法:将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时执行的目的,这样就能形成反复定时的效果. 使用setInterval需要手动停止触发,而使用嵌套setTimeout方法不

setTimeout()和setInterval()的用法

JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操作. setTimeout("function",time) 设置一个超时对象 setInterval("function",time) 设置一个超时对象 SetInterval为自动重复,setTimeout不会重复. clearTimeout(对象) 清除已设置的setTimeout对象 clearInterval(对象)

setInterval()与clearInterval()的一个有趣小现象

今天在使用setInterval()时,发现了一个有意思的事情 代码如下: var box=document.getElementById("box");//获取id为“box”的元素 var t=document.getElementById("top");//获取id为“t”的元素 var b=document.getElementById("bottom");//获取id为“ b”的元素 var a=0;//定义变量a function f

setTimeout与setInterval参数之String

今天无意中给某网友解答了一些setTimeout的问题,发现一个有趣的东西. 以前我总认为setTimeout的第一个参数只能function,后面发现string也能执行.那问题来了,String做参数,使用的是哪个域? function trace(){ console.log("out"); } function test(){ function trace(){ console.log("in"); } setInterval("trace()&q

window对象方法之setTimeout(),setInterval()

window中的这两个方法是比较重要的,在许多的设计中会使用到这两个方法.比如使用在倒计时抢购中. 首先来说说这两个方法的用法吧! 一:window.setTimeout(); setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. //延迟几秒以后执行代码,并且只执行 一次 语法: setTimeout(code,millisec); 例子:两秒后,弹出“hello js”: 1 第一个参数 我们要执行的代码 或则 一个函数 2 第二个参数 毫秒数第一种写法 (直接写 js

setTimeout()与setInterval()——走马灯效果

JavaScript中的setTimeout()与setInterval()都是指延时执行某一操作. 但setInterval()指每隔指定时间执行某操作,会循环不断地执行该操作:setTimeout()只延时指定时间后执行该操作,且只执行一次. setTimeout()在某种情况下也能实现setInterval()的效果,比较经典的例子就是在在函数内部调用自己.向下面这样: function example(){ ... setTimeout("example()", 1000);

setInterval 和 setTimeout 的区别 JS学习笔记2015-6-26(第67天)

setInterval 会间隔一定时间反复执行某操作: 而setTimeout则会间隔一段时间后只执行一次: 比如: 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标题文档</title> 6 <style

setTimeout 与 setInterval

最新写代码中时,看到项目中有人用到了 setTimeout(fun,0),于是想总结一下.个人理解,如果有错误的地方还请指出.THX 要想理解JavaScript的定时器是如何工作的,先要明白 JavaScript 引擎是单线程的.这个可以理解为 javascript 引擎是一个服务员,它有一个服务的队列,所有的界面元素事件,定时触发器回调,异步请求回调都要在这个任务队列里排队,等待处理.所有任务都是一个最小单位,不会中断处理.这样就可以理解 setTimeout(fun,0) 了,它并不是代表