課程
/前端開發(fā)
/JavaScript
/JavaScript進階篇
為什么連續(xù)點擊start可以加速,而連續(xù)點擊stop可以減速,原理是不是這樣?:點一次啟動一個num+1的函數(shù),如果一秒內(nèi)點了4次start,那么一秒就num+4。
2016-08-31
源自:JavaScript進階篇 8-6
正在回答
看下面的代碼,設(shè)置雙計時,可用于圍棋比賽:
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html?xmlns="http://www.w3.org/1999/xhtml"> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>無標(biāo)題文檔</title> <script?type="text/javascript"> ???var?num=0; ???var?i; ???var?n=true; ???function?st(){ ???document.getElementById("txt").value=num; ???num=num+1; ???i=setTimeout("st()",1000); ???} function?startCount(){ if(n==true){//n初始值為true,可以執(zhí)行以下代碼,執(zhí)行到n=false停止 ?num=0; ????clearTimeout(i); setTimeout("st()",1000); n=false; } }??? function?stopCount(){ if(n==false){//當(dāng)n=false,執(zhí)行以下代碼,執(zhí)行到n=true停止 num=0; clearTimeout(i); setTimeout("st()",1000); ?//?clearTimeout(i); ???n=true;//而當(dāng)n=true;再次執(zhí)行startCount()函數(shù),按照如此單一的循環(huán)模式, ???//不會再出現(xiàn)多次點擊start出現(xiàn)計時加速的現(xiàn)象 ?? ??} ???????} </script>? <style?type="text/css"> *{padding:0;?margin:0;?font-size:24px;?color:#F00;} #txt{text-align:center;} input{color:?#C33;?font-size:24px;?font-family:"華文隸書";?font-weight:bold;} </style> </head> <body> <form> <input?type="button"?value="start"?onclick="startCount()"?/> ???<input?type="text"?id="txt"?/> ???<input?type="button"?value="start"?onclick="stopCount()"?/> </form> </body> </html>
慕村1994845
那是因為你沒點擊一次開始 ?定時器就啟動一個 ?多個定時器運行 自然速度就快 ? ?而點擊一次 結(jié)束 ?僅僅取消一個定時器 ? 正確的方法應(yīng)該是 ?點擊一次開始之后 ? 就讓 ?開始按鈕再點擊不起作用
var num=0;
? var i;
? var n=true;
? function a(){
? ?document.getElementById('count').value=num;
? ? i=setTimeout("a()",1000);
? ? num=num+1;
? }?
?
? function startCount(){
? ? if(n==true){
? ? ? ? i=setTimeout("a()",1000);
? ? ? ? n=false;
? ? }
? }
??
? function stopCount(){
? ? ? if(n==false){
? ? ? ? clearTimeout(i);
? ? ? ? n=true;
? ? ? }
//這是之前有同學(xué)對這個問題的回答,可以解決多次點擊start加速的問題
小藺子
慕標(biāo)3062565
不光是點start,你試試在一個不影響代碼的地方加空格,也會導(dǎo)致加速,具體原因就不清楚了。
舉報
本課程從如何插入JS代碼開始,帶您進入網(wǎng)頁動態(tài)交互世界
5 回答為什么連續(xù)點擊start速度會變快,而且stop不下來
2 回答在這個代碼在 連續(xù)多次點擊start按鈕 計次速度明顯變快,且點擊stop停不下來,這是為什么?
2 回答為什么不斷點擊start計時速度越來越快?
2 回答連續(xù)點擊start之后,數(shù)字增長很快,需要點擊多次stop才能停止下來。
1 回答當(dāng)點多次start時速度會加快
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-10-25
看下面的代碼,設(shè)置雙計時,可用于圍棋比賽:
2016-09-06
那是因為你沒點擊一次開始 ?定時器就啟動一個 ?多個定時器運行 自然速度就快 ? ?而點擊一次 結(jié)束 ?僅僅取消一個定時器 ? 正確的方法應(yīng)該是 ?點擊一次開始之后 ? 就讓 ?開始按鈕再點擊不起作用
var num=0;
? var i;
? var n=true;
? function a(){
? ?document.getElementById('count').value=num;
? ? i=setTimeout("a()",1000);
? ? num=num+1;
? }?
?
? function startCount(){
? ? if(n==true){
? ? ? ? i=setTimeout("a()",1000);
? ? ? ? n=false;
? ? }
? }
??
? function stopCount(){
? ? ? if(n==false){
? ? ? ? clearTimeout(i);
? ? ? ? n=true;
? ? ? }
? }
//這是之前有同學(xué)對這個問題的回答,可以解決多次點擊start加速的問題
2016-09-01
不光是點start,你試試在一個不影響代碼的地方加空格,也會導(dǎo)致加速,具體原因就不清楚了。