質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

217閲覧

javascripでタイマーを作っています。

masao12

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/05/28 08:55

10秒経過したら、リロードし、btnをクリックしたら10秒を計測している
カウントダウンタイマーを停止するプログラムを実装しようとしています。

下記のコードですと、タイマーを一度しか停止できませんが、
何回も停止と再生ができるようにしたいと考えています。
解決方法等わかる方がいましたら、教えていただけますでしょうか。
是非よろしくお願いいたします。

htmlのボタンはclass="btn"です。

JAVASCRIPT

1var count = 0; 2var flag = false; 3 function countup(){ 4 count++; 5 var reset = 10; 6 console.log(count); 7 if(count > reset){ 8 location.reload(true); 9 } 10 } 11 var Reload = setInterval(function(){ 12 countup(); 13 },1000);//1秒 14 $('.btn').on('click',function(){ 15 if(flag == false){ 16    flag = true 17 clearInterval(forceReload); 18 }else{ 19 flag = false 20 setInterval(countup,1000); 21 } 22 return false; 23 }); 24

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

おそらく forceReloadReload のことなんですよね?

js

1var forceReload = setInterval(function(){ 2 countup(); 3},1000);//1秒

最初に countup を起動させるのはこの関数で、

js

1clearInterval(forceReload);

こうやって停止させたんですよね?ということは

js

1forceReload = setInterval(countup,1000);

と変数を更新しておかないと、新しい setInterval のタイマーを止めることができません。

投稿2018/05/28 09:15

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masao12

2018/05/28 09:20

ご協力ありがとうございました。無事解決できました。
guest

0

ベストアンサー

中断の考え方によります。
仮に0.5秒のタイミングでとめて、再スタートしたとき最初は0.5秒から始めたい場合は
ちょっと複雑になります。
とめたあと次のカウントはまた1秒後でいいならすごく単純です

javascript

1$(function(){ 2 var timerId; 3 var flg=false; 4 var count=0; 5 $('.btn').on('click',function(){ 6 if(flg){ 7 console.log("stop"); 8 clearInterval(timerId); 9 }else{ 10 console.log("start"); 11 timerId=setInterval(function(){ 12 count++; 13 console.log(count); 14 },1000); 15 } 16 flg=!flg; 17 }); 18}); 19

HTML

1<input type="button" class="btn" value="btn">

投稿2018/05/28 09:13

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masao12

2018/05/28 09:19

ご回答ありがとうございました。非常に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問