<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>散人笔记 &#187; clearTimeout</title>
	<atom:link href="http://www.uideas.cn/post/tag/cleartimeout/feed" rel="self" type="application/rss+xml" />
	<link>http://www.uideas.cn</link>
	<description>生活来源于创意,所以我懂生活</description>
	<lastBuildDate>Sun, 22 Aug 2010 07:17:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>setTimeout()的用法概述</title>
		<link>http://www.uideas.cn/post/144.html</link>
		<comments>http://www.uideas.cn/post/144.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 09:32:37 +0000</pubDate>
		<dc:creator>kos</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[clearTimeout]]></category>

		<guid isPermaLink="false">http://www.uideas.cn/?p=144</guid>
		<description><![CDATA[　　setTimeout()是属于window的method,但我们都是略去window 这个顶层对象的名称, 这是用来设定一个时间, 时间到了, 就会执行一个指定的method；用 setTimeout()来执行 function；不断重复执行setTimeout( )方法；设定条件使 setTimeout( ) 停止；clearTimeout( )；给循环Set flag]]></description>
			<content:encoded><![CDATA[<p>1、setTimeout()是属于window的method,但我们都是略去window 这个顶层对象的名称, 这是用来设定一个时间, 时间到了, 就会执行一个指定的method。请先看以下一个简单的例子。</p>
<form enctype="application/x-www-form-urlencoded" method="get"><code></p>
<div class="Nodiv">
<div class="Notitle">CODE</div>
<div class="Nocontent"><textarea class="textarea" cols="20" rows="8">&lt;html&gt; &lt;body&gt; &lt;h1&gt; &lt;font color=blue&gt;示范网页&lt;/font&gt;&lt;/h1&gt; &lt;p&gt;请等三秒&lt;/p&gt; &lt;script&gt; setTimeout("alert('对不起，让你久等了')", 3000 ); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</textarea></div>
<div class="Nobutton">
<input onclick="RunCode(this)" type="button" value="运行代码" />
<input onclick="CopyCode(this)" type="button" value="复制代码" />
<input onclick="SaveCode(this)" type="button" value="保存代码" />
<span class="Nots">[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</span>
</div>
</div>
<p></code></form>
<p>　　　setTimeout() 是设定一个指定等候时间 (单位是千分之一秒, millisecond), 时间到了, 浏览器就会执行一个指定的 method 或 function。<br />
　　　setTimeout(&#8221;alert(&#8217;对不起，让你久等了&#8217;)&#8221;, 3000 )中alert(&#8217;对不起，让你久等了！)就是指定要执行的method，3000就是要执行的等候时间。</p>
<p>2、用 setTimeout()来执行 function<br />
setTimeout()通常是与function一起使用, 以下是一个较上一个例子复杂点的例子。</p>
<form enctype="application/x-www-form-urlencoded" method="get"><code></p>
<div class="Nodiv">
<div class="Notitle">CODE</div>
<div class="Nocontent"><textarea class="textarea" cols="20" rows="8">&lt;html&gt; &lt;body&gt; &lt;h1&gt;&lt;font color=blue&gt;示范网页&lt;/font&gt;&lt;/h1&gt; &lt;script&gt; function clearWord( ){ window.status=""; } &lt;/script&gt; &lt;form&gt; &lt;input type="button" value="在状态栏显示文字" onClick="window.status='Hello' , setTimeout('clearWord( )', 3000) "&gt; &lt;/form&gt; &lt;/body&gt;  &lt;/html&gt;</textarea></div>
<div class="Nobutton">
<input onclick="RunCode(this)" type="button" value="运行代码" />
<input onclick="CopyCode(this)" type="button" value="复制代码" />
<input onclick="SaveCode(this)" type="button" value="保存代码" />
<span class="Nots">[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</span>
</div>
</div>
<p></code></form>
<p>点击一下按钮, 你能看到状态栏出现Hello, 三秒后文字自动消失。<br />
　　　A、在这里事先设定了一个clearWord()的方法, 定义如：window.status=&#8221;";即让状态栏的文字清空。<br />
　　　B、点击按钮后会依次执行两项工作，用“，”隔开；onClick=&#8221;window.status=&#8217;Hello&#8217; , setTimeout(&#8217;clearWord( )&#8217;, 3000) &#8220;。</p>
<p>3、不断重复执行setTimeout( )方法<br />
setTimeout( ) 预设只是执行一次, 但我们可以使用一个循环方式, 使到一个setTimeout( )再执行自己一次, 就会使到第二个setTimeout()执行, 第二个又启动第三个, 这样循环下去, setTimeout( ) 就会不断执行了。<br />
下面的例子就是令文本框里面的数值每秒加1：</p>
<form enctype="application/x-www-form-urlencoded" method="get"><code></p>
<div class="Nodiv">
<div class="Notitle">CODE</div>
<div class="Nocontent"><textarea class="textarea" cols="20" rows="8">&lt;html&gt; &lt;head&gt;&lt;script&gt;x = 0;function countSecond(){x = x+1;document.fm.displayBox.value=x;setTimeout("countSecond( )", 1000)}&lt;/script&gt; &lt;/head&gt;&lt;body&gt; &lt;p&gt; &lt;/br&gt;&lt;form name=fm&gt;&lt;input type="text" name="displayBox" value="0" size=4 &gt;&lt;/form&gt;&lt;script&gt;countSecond()&lt;/script&gt;&lt;/body&gt; &lt;/html&gt; </textarea></div>
<div class="Nobutton">
<input onclick="RunCode(this)" type="button" value="运行代码" />
<input onclick="CopyCode(this)" type="button" value="复制代码" />
<input onclick="SaveCode(this)" type="button" value="保存代码" />
<span class="Nots">[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</span>
</div>
</div>
<p></code></form>
<p>　　　A、此例子中有两个script, 第一个是设定countSecond( ) 这个地, 第二个是在网页完全载入后再执行的function<br />
　　　B、当countSecond()启动后, 就会启动setTimeout(), 这个method 在一秒后又启动 countSecond( ), countSecond( ) 启动后又启动setTimeout( ) , 所以得出的结果是 countSecond( ) 每秒执行一次。</p>
<p>4、设定条件使 setTimeout( ) 停止<br />
setTimeout( ) 的循环开始后, 就会不断重复, 在上个例子中, 你看到文字框的数字不断递增, 但有方法使到数字跳到某一个数值就停下来, 其中一個方法是用 if&#8230;else 设定一個条件, 若是 TRUE 就继续执行setTimeout( ) , 若是 FALSE 就停止。<br />
例如要使到上个例子的 counter 跳到 20 就停下, 可以将有关的function 作以下的更改。<br />
function countSecond( )<br />
{　if ( x &lt; 20 )<br />
　　　{　x = x + 1<br />
　　　　 document.displaySec.displayBox.value = x<br />
　　　　 setTimeout(&#8221;countSecond( )&#8221;, 1000)<br />
　　}<br />
}</p>
<p>5、clearTimeout( )<br />
在上面已以看过如何使用setTimeout( )来使到浏览器不断执行一个function, 当一个 setTimeout( ) 开始了循环的工作, 我们要使它停下来, 可使用 clearTimeout( ) 这个method。<br />
clearTimout( ) 有以下语法:　clearTimeout(timeoutID)<br />
要使用 clearTimeout( ), 我们設定 setTimeout( ) 时, 要给予setTimout( ) 一个名称, 这个名称就是 timeoutID , 我们让它停止, 就是用timeoutID来叫停。<br />
在下面的例子中, 设定两个timeoutID, 分別命名为meter1 及 meter2, 如下:<br />
meter1 = setTimeout(&#8221;count1( )&#8221;, 1000)<br />
meter2 = setTimeout(&#8221;count2( )&#8221;, 1000)<br />
下面是一个可停止的setTimeout( )</p>
<form enctype="application/x-www-form-urlencoded" method="get"><code></p>
<div class="Nodiv">
<div class="Notitle">CODE</div>
<div class="Nocontent"><textarea class="textarea" cols="20" rows="8">&lt;html&gt; &lt;head&gt; &lt;script&gt; x = 0;y = 0;function count1(){ x = x + 1; document.display1.box1.value = x; meter1=setTimeout("count1()", 1000); } function count2(){ y = y + 1; document.display2.box2.value = y; meter2=setTimeout("count2()", 1000); } &lt;/script&gt; &lt;/head&gt;&lt;body&gt; &lt;p&gt; &lt;/br&gt;&lt;form name=display1&gt;&lt;input type="text" name="box1" value="0" size=4 &gt;&lt;input type=button value="停止计时" onClick="clearTimeout(meter1) " &gt; &lt;input type=button value="继续计时" onClick="count1() " &gt; &lt;/form&gt;&lt;p&gt;&lt;form name=display2&gt;&lt;input type="text" name="box2" value="0" size=4 &gt;&lt;input type=button value="停止计时" onClick="clearTimeout(meter2) " &gt; &lt;input type=button value="继续计时" onClick="count2() " &gt; &lt;/form&gt;&lt;script&gt;count1()count2()&lt;/script&gt;&lt;/body&gt; &lt;/html&gt;</textarea></div>
<div class="Nobutton">
<input onclick="RunCode(this)" type="button" value="运行代码" />
<input onclick="CopyCode(this)" type="button" value="复制代码" />
<input onclick="SaveCode(this)" type="button" value="保存代码" />
<span class="Nots">[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</span>
</div>
</div>
<p></code></form>
<p>6、给循环Set flag<br />
先看这个例子</p>
<form enctype="application/x-www-form-urlencoded" method="get"><code></p>
<div class="Nodiv">
<div class="Notitle">CODE</div>
<div class="Nocontent"><textarea class="textarea" cols="20" rows="8">&lt;html&gt; &lt;head&gt; &lt;script&gt; x=0;function count(){ x = x + 1; document.display.box.value= x; timeoutID=setTimeout("count()", 1000); }&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;p&gt; &lt;/br&gt;&lt;form name=display&gt;&lt;input type="text" name="box" value="0" size=4 &gt;&lt;input type=button value="停止计时" onClick="clearTimeout(timeoutID) " &gt; &lt;input type=button value="继续计时" onClick="count() " &gt; &lt;/form&gt; &lt;p&gt;&lt;script&gt;count()&lt;/script&gt;&lt;/body&gt; &lt;/html&gt;</textarea></div>
<div class="Nobutton">
<input onclick="RunCode(this)" type="button" value="运行代码" />
<input onclick="CopyCode(this)" type="button" value="复制代码" />
<input onclick="SaveCode(this)" type="button" value="保存代码" />
<span class="Nots">[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</span>
</div>
</div>
<p></code></form>
<p>在上面的例子中，网页打开后, 你会看见文本框中的数字递增效果, 请按四次 [继续计时]按钮, 留意现在会加快数字跳动, 原因是有关的 function 被开启了多个, 每个都会使数字改变。当连续按四次[继续计时]按钮后，再按[停止计时]按钮，你会发现要按五次后数字才会停下来。<br />
再看下面一个改进的例子</p>
<form enctype="application/x-www-form-urlencoded" method="get"><code></p>
<div class="Nodiv">
<div class="Notitle">CODE</div>
<div class="Nocontent"><textarea class="textarea" cols="20" rows="8">&lt;html&gt; &lt;head&gt; &lt;script&gt; x = 0; flag = 0; function count(){ x = x + 1; document.display.box.value = x; timeoutID=setTimeout("count()", 1000); flag = 1;} function restart(){ if (flag==0){count();} } &lt;/script&gt; &lt;/head&gt;&lt;body&gt; &lt;p&gt; &lt;/br&gt;&lt;form name=display&gt;&lt;input type="text" name="box" value="0" size=4 &gt;&lt;input type=button value="停止计时"onClick="clearTimeout(timeoutID); flag=0 " &gt;&lt;input type=button value="继续计时" onClick="restart() " &gt;&lt;/form&gt; &lt;p&gt;&lt;script&gt;count()&lt;/script&gt;&lt;form&gt;&lt;input type=button value="Show flag"onClick="alert('The flag now is '+ flag) " &gt;&lt;/form&gt;&lt;/body&gt; &lt;/html&gt;</textarea></div>
<div class="Nobutton">
<input onclick="RunCode(this)" type="button" value="运行代码" />
<input onclick="CopyCode(this)" type="button" value="复制代码" />
<input onclick="SaveCode(this)" type="button" value="保存代码" />
<span class="Nots">[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</span>
</div>
</div>
<p></code></form>
<p>　　网页开启后，点击[Show flag]按钮时，提示的flag是1，点击[停止计时]按钮后再点击[Show flag]按钮后，提示是flag是0，点击[继续计时]按钮后再点击[Show flag]按钮后，提示变回flag是1，通过这样的方法可以避免前面例子出现点击多次计时按钮会改变数值改变速度的情况发生。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uideas.cn/post/144.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>setTimeout实现缓慢移动和clearTimeout停止移动效果</title>
		<link>http://www.uideas.cn/post/135.html</link>
		<comments>http://www.uideas.cn/post/135.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 03:01:08 +0000</pubDate>
		<dc:creator>kos</dc:creator>
				<category><![CDATA[DIV+CSS]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[clearTimeout]]></category>
		<category><![CDATA[setTimeout]]></category>
		<category><![CDATA[缓慢移动]]></category>

		<guid isPermaLink="false">http://www.uideas.cn/?p=135</guid>
		<description><![CDATA[　　前面一篇文章实现了用其它方式代替滚动条的方法，能够更容易的美化页面，而那种方法有一个缺陷就是给人视觉上的反应不是很一目了然，每点击按钮触发一次事件后，就直接从一个位置滚动到另一个位置，看不到整个滚动过程。其实前面一篇文章对于正常的使用完全没有问题了……]]></description>
			<content:encoded><![CDATA[<p>　　前面一篇文章实现了用其它方式代替滚动条的方法，能够更容易的美化页面，而那种方法有一个缺陷就是给人视觉上的反应不是很一目了然，每点击按钮触发一次事件后，就直接从一个位置滚动到另一个位置，看不到整个滚动过程<br />
其实前面一篇文章对于正常的使用完全没有问题了，但为了让其更完美决定把此功能完善了一下<br />
先看看下面的效果</p>
<form enctype="application/x-www-form-urlencoded"><code></p>
<div class="Nodiv">
<div class="Notitle">CODE</div>
<div class="Nocontent"><textarea class="textarea" cols="20" rows="8">&lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;  &lt;title&gt;无标题文档&lt;/title&gt; &lt;link type="text/css" rel="stylesheet" href="http://www.uideas.cn/download/menuscrollbak.css"&gt; &lt;/head&gt;  &lt;body onLoad="setmenu()"&gt;  &lt;div class="mainDiv"&gt;  &lt;div id="menutop"&gt; &lt;/div&gt; &lt;div id="cov"&gt;  &lt;div id="menu"&gt;  &lt;p class="contenttitle"&gt;快乐不快乐(郑秀文)&lt;/p&gt; 	 &lt;p&gt;咖啡淡了&lt;/p&gt; 	  &lt;p&gt;是因为冰块溶了&lt;/p&gt; &lt;p&gt;没怎么了&lt;/p&gt; &lt;p&gt;淡了就是淡了&lt;/p&gt; &lt;p&gt;搁在桌上还要不要&lt;/p&gt; &lt;p&gt;不再爱了&lt;/p&gt; &lt;p&gt;是因为感情坏了&lt;/p&gt; &lt;p&gt;你怎么了&lt;/p&gt; &lt;p&gt;坏了就是坏了&lt;/p&gt; &lt;p&gt;没有什么大不了&lt;/p&gt; &lt;p&gt;我们不快乐&lt;/p&gt; &lt;p&gt;快乐后不再快乐&lt;/p&gt; &lt;p&gt;就在最后的一秒&lt;/p&gt; &lt;p&gt;抱了吻了哭了&lt;/p&gt; &lt;p&gt;快乐不快乐&lt;/p&gt; &lt;p&gt;没人快不快乐&lt;/p&gt; &lt;p&gt;就在最后的一秒&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;我们的关系就这样了&lt;/p&gt; &lt;p&gt;咖啡淡了&lt;/p&gt; &lt;p&gt;是因为冰块溶了&lt;/p&gt; &lt;p&gt;没怎么了&lt;/p&gt; &lt;p&gt;淡了就是淡了&lt;/p&gt; &lt;p&gt;搁在桌上还要不要&lt;/p&gt; &lt;p&gt;不再爱了&lt;/p&gt; &lt;p&gt;是因为感情坏了&lt;/p&gt; &lt;p&gt;你怎么了&lt;/p&gt; &lt;p&gt;坏了就是坏了&lt;/p&gt; &lt;p&gt;没有什么大不了&lt;/p&gt; &lt;p&gt;我们不快乐&lt;/p&gt; &lt;p&gt;快乐后不再快乐&lt;/p&gt; &lt;p&gt;就在最后的一秒&lt;/p&gt; &lt;p&gt;抱了吻了哭了&lt;/p&gt; &lt;p&gt;快乐不快乐&lt;/p&gt; &lt;p&gt;没人快不快乐&lt;/p&gt; &lt;p&gt;就在最后的一秒&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;我们的关系就这样了&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; 	 &lt;/div&gt;  &lt;/div&gt;  &lt;div id="menubottom"&gt;&lt;/div&gt; &lt;/div&gt;  &lt;/body&gt; &lt;script language="javascript" type="text/javascript" src="http://www.uideas.cn/download/menuscrollbak.js"&gt;&lt;/script&gt;  &lt;/html&gt; </textarea></div>
<div class="Nobutton">
<input onclick="RunCode(this)" type="button" value="运行代码" />
<input onclick="CopyCode(this)" type="button" value="复制代码" />
<input onclick="SaveCode(this)" type="button" value="保存代码" />
<span class="Nots">[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</span>
</div>
</div>
<p></code></form>
<p>&nbsp;
<p>
<span style="color: #993300;"><strong>相关下载：</strong></span><br />
　　js下载：<a href="http://www.uideas.cn/download/menuscrollbak.js">menuscrollbak.js</a><br />
　　css下载点击<a href="http://www.uideas.cn/download/menuscrollbak.css">menuscrollbak.css</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uideas.cn/post/135.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
