Java Scriptの第一歩

WEB制作を独学でやっていると、HTMLとCSSは理解できてもJava Scriptでつまづくケースは非常に多いと思います。

私もかつて同じようにJSで絶望し、一度学ぶことを諦めたタイプなのでとてもよく分かります。

この記事では、「HTMLとCSSなら分かるけどJSはちょっと、、、」と苦手意識を持っている方が受け入れやすいことを第一に、実際に簡単なコードを書いて説明してみます。

説明は簡略化するので説明不足になる点も出てきますが、気になったところは各自で調べてください。

JSを使うとサイトに動的な変化を与えることができる

面倒な前置きは抜きにして、すでにHTMLとCSSを学んだあなたは、以下のコードを見れば文字が赤色で表示されることが理解できると思います。

<div>
  <p id="test">My color is black</p>
</div>

<style>
 #test{
  color: red;
 }
</style

上のCSSはtestというID属性をもつ要素に対して、colorというプロパティに赤を指定しています。

では同じように、testというID属性をもつ要素をJava Scriptで指定して動きを与えてみたいと思います。

要素を指定する

いくつか手段はありますが、document.querySelector()を使います。詳しく知りたい人は各自ぐぐっていただくとして、これで要素を指定します。

document.querySelector(‘#test’)が、CSSでいう #test の部分です。しかし、呼び出すたびにこんな長々と書きたくないので、分かりやすい名前をつけてみます。

const test = document.querySelector('#test');

constを雑に説明すると何かを定義しておきたいときの宣言です。

「test はdocument.querySelector(‘#test’) のことだ!」と宣言します。(変数というやつです。)これで、今後はtestと書くだけでtest属性をもつ要素を指定できます。

ではtestに対して動きを与える部分を書いていきます。

クリックイベントを登録する

Webブラウザ上で起こるクリックやマウスホバー、inputに何かが入力されたとき、スマホでタッチされたときなどなど。

これらを「イベント」と呼び、「そのイベントが発生したときに何をするか」を登録しておくことができます。(利用できるイベントについては文末)

 addEventListener('イベントの種類', ()=>{ 何かすること }, オプション);

今回はtestにクリックイベントを登録したいので、

test.addEventListener('click' , ()=>{クリックされたときにやること }, オプション);

となります。

オプションについては説明しませんが、オプションを指定しないときはfalse と書きます。

やること(処理)を書く

最後に処理の部分です。例として、#testをクリックで親要素のdivタグのcssクラスを付け外しするプログラムとしてみます。

先にHTMLとCSSを書いておきましょう。divにcloseクラスが付与されるとtransformで小さくなっていく仕掛けです。

<div>
  <p id="test">My color is black</p>
</div>

<style>
 #test{
   color: red;
 }
 div.close{
   transform-origin:bottom left;
   transform:rotateY(85deg) scale(.5);
   transition: 1s; 
 }
</style>

cssクラスの操作はclassList

クラスの操作は「classList」で行います。

  • classList.add(‘クラス名’) クラス名を付与
  • classList.remove(‘クラス名’) クラス名を除去
  • classList.toggle(‘クラス名’) クラス名があれば除去、なければ付与

toggleはInternetExplorerとoperaが非対応ですが、そんなことは無視してtoggleでいきます。

const test = document.querySelector('#test');
const div = document.querySelector('div');

test.addEventListener('click' , ()=>{
  div.classList.toggle('close')
}, false);

できあがり。処理の部分を改行していますが、先ほどまでの{クリックされたときにやること}の部分です。実際のサンプルが以下。

See the Pen Untitled by Takashi Abe (@TakeshiAbe) on CodePen.

1つ1つ見ていけば、要素を指定し、その要素に処理を与える、という流れはCSSと通じるものがあるのではないかと思いますがいかがでしょうか?

今回のサンプルだけで、

  • 要素を取得するのに使用したquerySelector。
  • イベント登録に使ったaddEventListener。
  • クラス操作に使用したclassList

と3つ覚えられたことになります。

もちろん覚えることは山ほどありますし、今回でもかなり説明端折っていますが、触っていく内にjsがなんとなく分かってくるようになります。分かってくると楽しくなってきます。失敗しながら楽しめることが一番です。

この記事でわずかでも苦手意識が薄まったなら幸いです。

補足

イベントの種類について:「イベントリファレンス(MDN)

タイトルとURLをコピーしました