Webデザイナーを目指す人のブログ

Webサイト作成時に勉強したことの備忘録

JavaScript サイト構築

タイマー処理

投稿日:

                                                                                                                                 

タイマー処理

JSにはタイマー処理という命令が用意されています。
setInterval: 一定時間ごとにある処理を繰り返すという
setTimeout: 一定時間後にある処理を一回だけする

setInterval

最初にsetIntervalについてです。
一定時間ごとに繰り返す処理ができるのでスライドショーや流れる文字をつくるときに使えます。
ただ、無条件で繰り返されるので処理が重すぎると自分の求める動きに追いつかない可能性があります。

<script>
var i = 0;
function show () {
	console.log(i++);
}
setInterval(function(){
	show();
}, 1000);
</script>

1000の部分については何秒ごとに処理を繰り返すかを指定する部分になります。
1秒=1000なので5秒だったら5000になります。

setTimeout

つぎにsetTimeoutについてです。

<script>
  var count = 0;
  var countup = function(){
    console.log(count++);
  } 
  setTimeout(countup, 2000);
</script>
 

これで2秒後に0とコンソールに表示される処理になります。

こちらの場合は前の処理が終わってから動き始めるため、setIntervalのように追いつかないということはおきません。
ただ、このままだと1回だけしか処理ができないので、setTimeoutを使っている状態で
繰り返し処理をする方法について見ていきます。

 <script>
  var count = 0;
  var countup = function(){
    console.log(count++);
    setTimeout(countup, 2000);
  } 
  countup();
</script>

先程外にでていたsetTimeout(countup, 1000);の部分をfunctionの内側にいれるだけでOKです。

ある時間のタイミングで処理を止めたいという場合はclearTimeoutを使います。

<script>
  var count = 0;
  var countup = function(){
    console.log(count++);
    var id = setTimeout(countup, 2000);
    if(count > 4){ 
      clearTimeout(id);
    }
  }
  countup();
</script>

これで8秒後に処理がストップします。

-JavaScript, サイト構築

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

jQuery・PHPで出てくる言語の意味

jQ・PHPで出てくる言語の意味 jQ・PHPを操作していると意味がわからない言語がたくさん出てきます。 調べたものを備忘録としてひたすらこのページに書き続けていきます。 言語 意味 備考 &#822 …

no image

メディアクエリ

レスポンシブデザイン スマートフォンやタブレットの普及に伴い、サイトを構築するときはデスクトップサイズだけでなく、 それぞれのデバイスにあったレスポンシブデザインの構築が必要になってきています。 今日 …

no image

【jQuery】イベント-マウスイベント・フォームイベント

jQueryには様々なイベントが用意されています。 イベントというのは例えばクリックされたときにどうするかとか、値が変わった時にどうするかなどを指定するためのものです。 イベントには ・マウスを操作し …

no image

配列

Javascriptの配列 今までにでてきた変数は1つのデータしかいれることができません。 1変数につき1データです。 でも例えば類似した分類で変数を指定したいとき、いくつも指定するのは面倒だったりし …

no image

【jQuery】Ajax

今日から数回にわけてAjaxについて調べたことをまとめていきたいと思います。 そもそも私は今回のテーマであるAjaxというものを知らなかったわけなんですが、そんなド素人が噛み砕いて噛み砕いて噛み砕いて …