[json]js settimeout用法详解

更新时间:2017-02-26    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

Test Block<script language="JavaScript" type="text/网页特效">for(var i=1;i<=50;i++){ window.setTimeout("printI("+i+")",1000+i*1000); //printI(i);}function printI(i){ document.getElementById("test").innerHTML+=", "+i;}</script>

window.setTimeout(func,delay);

func,代表所要执行的函数或代码字符串。

delay,延时参数,单位为毫秒,一秒=1000毫秒。

func中传递的函数或语句有变量输入时,变量的取值以延时后的执行时段时的取值为准,不以代码执行时段的值为准。例如:

代码:

for(var i=1;i<=50;i++){ window.setTimeout("document.write(i)",1000);}

这样写的意义是在程序执行完1秒后打印50个i,此时程序已执行完,i的取值为"51";

如果要是程序每隔1秒打印一个数,则程序要改写为

代码:

for(var i=1;i<=50;i++){ window.setTimeout("document.write("+i+")",i*1000);}

有了"+i+"的字符串跳出,每次执行的赋值

1. window.setTimeout("document.write(1)",1000);

2. window.setTimeout("document.write(2)",2000);

3. window.setTimeout("document.write(3)",3000);

4. window.setTimeout("document.write(4)",4000);

5. window.setTimeout("document.write(5)",5000);

...

...

50. window.setTimeout("document.write(50)",50000);

这样实现显示的延时

 

--------------------------------------------------------------------------------

setInterval()这函数跟setTtimeout一样,也是延时执行,不过跟setTimeout()不一样的地方就是,setTimeout执行一次就停止了,而setInterval会一直执行下去...




Animating Text
<script LANGUAGE="JavaScript" type = "text/javascript">
var pos1 = 0;

function f() {
    pos1 += 5;
    if (pos1 > 640)
       pos1 = 0;
    document.getElementById("movetext").style.left = pos1;
    window.setTimeout("f();",300);
}
</script>



inside a div



1. SetTimeOut()

             1.1 SetTimeOut()语法例子

             1.2 用SetTimeOut()执行Function

             1.3 SetTimeOut()语法例子

             1.4 设定条件使SetTimeOut()停止

             1.5 计分及秒的counter

   2. ClearTimeout()

   3.  Set Flag  


 


--------------------------------------------------------------------------------

10.1 setTimeout( )
  setTimeout( ) 是?凫 window 的 method, 但我??都是略去 window ???游锛??Q, ?是用?碓O定一???r?, ?r?到了, 就??绦幸??指定的 method。?先看以下一????? ?是?]有???用途的例子, 只是用?硎竟? setTimeout( ) 的?法。

 

1. setTimeout( ) ?法例子
 

??-69 等候三秒才?绦械 alert( )

  在 第 3 章 ?到 alert ?υ?盒, 一般是用按?叫出?? 在???, 你??吹骄W???⑨ 3 秒, 就???映霈F一?? alert ?υ?盒。

1. ?用?g?器??⑹竟?磁碟中的 timeout1.htm, ??n案有以下?热?


示???



?等三秒!

<script>
setTimeout("alert("?Σ黄? 要你久候")", 3000 )
</script>

2. 留意????⑨崛?? 就??霈F一?? alert ?υ?盒。

 

  setTimeout( ) 是?定一??指定等候?r? (?挝皇乔Х种?幻? millisecond), ?r?到了, ?g?器就??绦幸??指定的 method 或 function, 有以下?法:

 

  今次例子是?定等 3 秒 (3000 milliseconds), ?g?器就??绦 alert( ) ?一??method。

 

2. 用 setTimeout( ) ??绦 function
  setTimeout( ) 通常是? function 一起使用, 以下是一???上??????的例子。

??-70 ??B列中自?酉?У奈淖?/p>

  在??-20, 你看?如何用按?在??B列?示文字, 然後再用按?消除文字, 在???, 你看到如何用按?在??B列?示文字, 而?文字??谌?脶嶙?酉?А?/p>

1. ?用?g?器??⑹竟?磁碟中的 timeout2.htm, ??n案有以下?热?


示???


<script>
function clearWord( )
{ window.status="" }
</script>


  onClick="window.status="Hello" , setTimeout("clearWord( )", 3000) ">

2. ?在按?上按一下, 你???到??B列出? Hello ?字, 留意?了三秒, ?字就???А?/p>

 

1. ??先?定一??名? clearWord( ) 的 function, 作以下定?:

window.status=""

  ?是用?硐???B列的文字 (?看??-20 的?明), ?g?器?绦 clearWord( ) , 就?????B列的文字。

2. 今次按??定了??右韵?身?工作, 用 , 分隔, ?g?器???序?绦羞@?身?工作:

onClick="window.status="Hello" , setTimeout("clearWord( )", 3000) "

3. 今次的 setTimeout( ) 有以下?定:

 

  ?是?定等 3 秒 (3000 milliseconds) ?g?器就??绦 clearWord( ) ?一??function。

  在第 2 章, 你看?如何使到父?窗???r自?娱_?⒁??子?窗, 若?看者不???子?窗, ?子?窗就??宦烽_???催^以上的??, ?你??一????_?⒆右?窗的??, 而?子?窗在??⑨?擅? 就???雨P?。

 

3. 不?嘀匮}?绦械 setTimeout( )
  setTimeout( ) ??只是?绦幸淮? 但我??可以使用一??循?方式, 使到一??setTimeout( ) 再??幼约阂淮? 就??沟降诙?? setTimeout( ) ?绦? 第二??又??拥谌??, ??友?h下去, ? setTimeout( ) 就????绦小?/p>

 

??-71 自?用棵爰 1 的 function

  在???, 你看到如何使用 setTimeout( ) 令文字框的?抵得棵刖图 1, ?然你也可以?定其他?增的速度, 例如每五秒就加 5, 或每五秒就加 1。

1. ?用?g?器??⑹竟?磁碟中的 timeout3.htm, ??n案有以下?热?


<script>
x = 0
function countSecond( )
{ x = x+1
  document.fm.displayBox.value=x
  setTimeout("countSecond( )", 1000)
}
</script>




<script>
countSecond( )
</script>

2. ????⑨? ?你留意文字框中的?抵缔D?。

3. ?你?⑦@?n案??去硬碟, 更改一些?定, 例如 x = x+5, 或?⒌群?r?改??000, 看有什?反???/p>

 

1. ???有??? script, 第一??是?定 countSecond( ) ??? function, 第二??在後的是在??完全?入後, 就??舆@ function。

2. 留意今次以下的?定:

function countSecond( )
{ x = x+1
  document.fm.displayBox.value = x
  setTimeout("countSecond( )", 1000)
}

  ? countSecond( ) ??俞? 就??? setTimeout( ), ??? method 在一秒後又?? countSecond( ), countSecond( ) ??俞嵊?? setTimeout( ) , 所以得出的?果是 countSecond( ) 每秒?绦幸淮巍?/p>

3. 在 JavaScript, 我??是使用???的方法使到一些事?不??绦? 其中一??用途是?示???r?, 另一??用途是?定跑?游淖? ?後的章???欣?印?/p>

  用上述的方法?定?r?, setTimeout( ) ?然?定了是一秒, 但?g?器?有另外?身?功能要?绦? 所以一??循?的?r?是稍多於一秒, 例如一分?可能只有58 ??循?。

 

4. ?定?l件使 setTimeout( ) 停止
  setTimeout( ) 的?圈?始後, 就???嘀匮}, 在上????, 你看到文字框的?底植?嗵?? 但我??是有方法使到?底痔?侥骋???抵稻屯O?? 其中一??方法是用 if...else ?定一???l件, 若是 TRUE 就???绦 setTimeout( ) , 若是 FALSE 就停止。

  例如要使到上????的 counter 跳到 20 就停下, 可?⒂嘘P的 function 作以下的更改。

function countSecond( )
{ if ( x < 20 )
   { x = x + 1
     document.displaySec.displayBox.value = x
     setTimeout("countSecond( )", 1000)
      }
}

 

5. ?分及?秒的 counter
  在前面的??, 相信你已?W?如何使用 setTimeout( ), ?在?你看一?????的例子。

 

??-72 ??r的 counter

  在???, 你要?定???文字框, 一???示分?, 另一???示秒, ????⑨? 就??谶@???文字框中自?佑??r。

1. ?用?g?器??⑹竟?磁碟中的 timeout4.htm, ??n案有以下?热?


<script>
x=0
y=-1

function countMin( )
{ y=y+1
  document.displayMin.displayBox.value=y
  setTimeout("countMin( )",60000)
}

function countSec( )
{ x = x + 1
  z =x % 60
  document.displaySec.displayBox.value=z
  setTimeout("countSec( )", 1000)
}
</script>


你在本??的???r?是:







秒。

<script>
countMin( )
countSec( )
</script>

2. ?你留意???文字框中的?底洲D?。

 

1. ???有??? function, 一??用?碛?分?, 一??用?碛?秒。在??, ?者只是示?setTimeout( ) 的操作, 因?橛??r器有其他更精?的??法。(留意: ?方式的??r?K不?蚀_。)

2. 留意?秒的 function:

function countSec( )
{ x = x + 1
  z = x % 60
  document.displaySec.displayBox.value=z
  setTimeout("countSec( )", 1000)

}

  ??的 % 符?是 modulus (???, 例如 z = x % 60 表示先?行 x / 60, 得出的??底? z ???? 例如 82 秒, modulus 就是 22, 所以文字框??@示 22 而不是 82。

3. 若你要??挝?底衷谇凹由 0, 例如 01, 02, 03 等, 可用以下方法:

function countSec( )
{ x = x + 1
  z = x % 60
  if (z < 10) { z = "0" + z }
  document.displaySec.displayBox.value=z
  setTimeout("countSec( )", 1000)
}

 

 


--------------------------------------------------------------------------------

10.2 clearTimeout( )
  在前一?, 你看?如何使用 setTimeout( ) ?硎沟?g?器不??绦幸?? function, ?一?? setTimeout( ) ?始了循?的工作, 我??要使它停下?? 可使用 clearTimeout( ) ? method。

  clearTimout( ) 有以下?法: clearTimeout(timeoutID)

  要使用 clearTimeout( ), 我???定 setTimeout( ) ?r, 要?予? setTimout( ) 一??名?, ?名?就是 timeoutID , 我??叫停?r, 就是用? timeoutID?斫型? ?是一??自?名?, 但很多程式?T就以 timeoutID ?槊??/p>

  在下面的例子, ?者?定??? timeoutID, 分?e命名? meter1 及 meter2, 如下:

timeoutID
 ↓
meter1 = setTimeout("count1( )", 1000)
meter2 = setTimeout("count2( )", 1000)

  使用? meter1 及 meter2 ?些 timeoutID 名?, 在?定 clearTimeout( ) ?r, 就可指定?δ囊?? setTimeout( ) 有效, 不??_及另一?? setTimeout( ) 的操作。

 

本文来源:http://www.bbyears.com/wangyezhizuo/30770.html

猜你感兴趣

热门标签

更多>>

本类排行