STERFIELD

2023/05/12

Webデザイナーでも最低限覚えるべきJavaScpitと学習してみて思ったこと

Webデザイナーでも最低限覚えるべきJavaScpitと学習してみて思ったこと

Webデザイナーでも最低限覚えるべきJavaScpitと学習してみて思ったこと
私は今までWebデザイナーとして開発に関わり、HTMLとCSSを扱ってきましたが、JavaScriptについてはほとんど関わらずにいました。しかし、近年デザイナーとして求められるスキルは静的なWebページのデザインだけに留まらず、UI、UXを意識したデザイン作成が求められます。

また、以前書いたブログでも触れましたが 近年は画像生成AIが登場し、このまま発達すればデザイナーとエンジニアの境界はどんどん消えていくことでしょう。使い方によっては静的なWebページしか作れないデザイナーが必要なくなる可能性も現実味を帯びてきました。

そのため、より高度なWebデザインを可能にするためにも、Web開発者として生き抜くためにも、プログラミングのスキルは必須になります。
時代に取り残されないようするために、JavaScriptの学習を始めました。

環境構築と初歩の解説

最初に、環境構築について説明します。 JavaScriptを使うには、ブラウザさえあれば最低限の環境が整っています。
まず、テキストエディタで以下のようなHTMLを書きます。

HTMLについては省略しますが、最低限のHTMLを書いてください。 そして、このファイルの拡張子を「.html」にして、保存します。保存後このファイルをブラウザで開けば、書いたJavaScriptが動作します。

まずは、画面に「Test」と表示させるプログラムを作ってみます。 以下のようにJavaScriptを書きます。

これで画面に「Test」と表示されます。

のタグに囲まれた範囲内にJavaScriptを記述すればJavaScriptが動きますが、このタグを body 内に記載する場合は

のように、bodyタグを閉じる直前に書きます。

また、Web開発においてHTMLとCSS、JavaScriptはそれぞれ別々のファイルとして管理し、head内でリンクを指定するのが
主流と思います。指定する場合は以下のように書きます。

概ねCSS と同じですが、HTMLの構築が終わってからJavaScriptが実行されないとエラーになるので「defer」と記載すること、

タグを書いたら必ず閉じタグが必要になるので

の閉じタグが必要になりますので記載が必要です。

タグで囲まれたテキストの記載。

JavaScriptでテキストを出力する場合には、

を使用します。しかし、これはタグに囲まれたテキストでなはないので、CSSでスタイリングすることが難しいです。なので、pタグに囲われたテキストを作成します。
手順としては以下のようになります。

  1. タグを作成する。

  2. テキストを指定する。
  3. 作成した

    タグにテキストを入れる。

  4. 作成した

    タグをHTMLに出力する。

この手順をJavaScriptのコードで表現する場合、以下のようになります。

このコードでは、

を使用してpタグを作成し、

を使用してテキストを作成しています。
そして、

を使用して作成したpタグにテキストを入れ、同じくHTMLに出力しています。

JavaScriptは一つ一つ簡単な指示をコンピューターに出して実行する物なので、まずは工程を自分で言語化することが大切です。
プログラマーがやっていることはコンピューターが理解できる言語で指示文を作る事ですが、その指示文は単語カードを並べて作成するような物で、CSSと同様に頻繁に使われる単語はある程度限られてきます。

jQuey などライブラリーの使い方について

前述したpタグでテキストを出力したように、JavaScriptは一つ一つの動作を指示して、任意の動きをする仕掛けを作ります。このコードを書く手間は外部ライブラリーを使う事で簡略化できます。

外部ライブラリーは様々ありますが、有名な物としてはjQueyがあります。
実際に使うには

  1. jQueryのサーバーにアクセスして使用する。
  2. ダウンロードをして使う

という方法があります。

jQueryのサーバーにアクセスして使用する場合

サーバーにアクセスする場合は

と記載します。

これでjQueryが使えますが、この方法はオンラインに接続できない場合は動きません。
オフライン上で動かすにはダウンロードをする必要があります。

ダウンロードをして使う場合

公式にサイトにアクセスしてダウンロードページに行くと
画像のような、画面いっぱいにコード文が記載されたページにたどり着くと思います。

このページで右クリックして「名前を付けて保存」を押し、拡張子を「.js」にして保存してください。
このファイルをホームページ内のディレクトリに格納し、

等のように記述すれば、同じくjQuery が使えます。

コードの記述について

実際にコードを書く際には

等のように書きます。
まず、

が実際に記載したコードを実行させるキーワードです。そして、その直後の{}内が実際に実行される指示文です。

のように、 処理を実行する対象を指定します。この指定する対象は、「タグ」、「タグにつけられたidやclass」、「指定したidの親要素や子要素」など多岐にわたります。

対象を指定したら次は

のように、どんな動きをするか指定し()内で具体的な詳細情報を書きます。この場合なら、css の color 指定を green に変える指示文になります。

ボタンをクリックしたらクラスをつける処理

実際に、「ボタンa」を押したら、「ボックスA」にclass onを追加するプログラムを作ってみます。

●HTML

●JavaScript(jQueryを使用する場合)

と記載します。

まず、

と指定し、それをクリックしたら、次のコードを動かすためのfunctionを記載します。

その中で「class on」を追加するプログラムを記載します。

と「box-a」を指定して、

でclass「 on 」を追加します。

このコードを実際に実行した場合、「ボタンa」をクリックすると

と記載されているHTMLが

と変化します。

これだけでは見た目の変化は特にありませんが、CSSで「.box-a」の装飾と「.box-a.on」の装飾を2パターン作成すれば、ボタンaを押すことでbox-aの見た目を変更するという仕掛けを作れます。CSSのキーフレームを使うことで変化する過程もアニメーションにして見せることができます。

また、「.addClass」を「.toggleClass」に変更すると、ボタンaを押すたびに「.on」が記述されたり、削除されたりするので、一つのボタンを押すだけで装飾を切り替えることができます。この性質を利用すればスマホサイトでよく見かけるメニューの表示、非表示を切り替える仕掛けも作成できます。

JavaScriptで制御することは単純なことでも、上手くCSSを割り当てることで比較的多くの動的な仕掛けを作成できます。
なお、同じ動きをするプログラムを外部ライブラリーを使わずに書くと以下のようになります。

●JavaScript(jQueryを使用しない場合)

両者のコードをあえて日本語にする場合、

●jQueryを使用する場合

  • 「ボタンa」がクリックされたら、以下の処理を行ってください。
  • 「ボックスA」にclass onを追加してください。

●jQueryを使用しない場合

  • 「ボタンa」に以下の処理があったら、次のプログラムを実行します。
  • 以下の処理とはクリックです。
  • 実行されるプログラムは「.box-a」にクラス「.on」を追加します。

という差があります。

プログラムは単語カードを並べて、指示文を作るようなものと先述しましたが、外部ライブラリーが有効な場合使用できる単語カードが加わったり、省略できる言い回しが可能になり、より直感的に開発が可能になります。

目的に応じて最適な外部ライブラリーを使用することでより開発しやすい環境を構築できます。

Anime.jsの解説

WebデザイナーとしてWeb開発する場合、やはり視覚的なイメージを作る機会が多いと思います。そこで、実際にアニメーションを実装するためのプログラムを書いてみます。今回は、外部ライブラリーのAnime.jsを使って、実際に画面内でアニメーションを作ってみたいと思います。

複数の円が弧を描くアニメーション

実際に複数の円が弧を描く動きを作ってみました。

まずは、jQueryと同様にAnime.jsの公式サイトにアクセスし、anime.min.jsを指定するか、ダウンロードして適用させてください。これでAnime.jsの外部ライブラリーを使用できます。

今回は、複数のdivをJavaScriptで出力し、CSSでdivを円形に変形させて、JavaScriptで動きをつける処理を行いました。 具体的には以下のようにコードを書きました。

●CSS

htmlについてはhead とbodyの最低限事だけを記述し、CSSで100pxの正方形の

を中央に表示させ、複数ある場合は同じ位置に重なるようにしました。 そしてそのdivの疑似要素を円系で表示させるように設定しました。

●JavaScript

最初のfor文は、同じ処理を繰り返すときに使用するプログラムです。
今回は複数の

を出力させるために使いました。
まず、iという変数を定義し、5回処理を繰り返すという設定で作りました。
具体的には、iが0から5まで1ずつ増える間、以下の処理を繰り返します。

これは、div要素を作成するためのコードです。

作成したdiv要素に、クラス名”circle”を追加する処理です。

これは、作成したdivをbody要素の子要素として追加する処理です。

このようにして、

が5つ表示されるようになります。その後、Anime.jsを使用して、回転させるアニメーションを作成します。

Anime.jsについて

Anime.jsは例えるなら、 対象を指定してその対象に振付をし、指定した振付を実行しなさい という手順で指示文を作ります。

まずは、対象となる物を作ったので次に振付を作成します。 具体的には、以下のように定義します。

そして、以下のように記述することで、作成した振付(アニメーション)が実行されます。

このプログラムは、

が回転するだけですが、疑似要素も一緒に回転するので、円が弧を描くように回転するアニメーションが実行されます。
今回はごく単純な物を作成しましたが、実際にはもっと多く、複雑な動きをつけることも可能です。

まとめ

JavaScriptは動作を制御する物で、HTMLやCSSと比較して文法や使用される単語が異なり、ハードルが高いです。 しかし、各命令文を見ると、簡単な命令を重ねたものであり、冷静に見ると理解できます。HTMLとCSSを理解している場合、JavaScriptの動作はごく単純なものでも、CSSをうまく割り当てるだけで多くの仕掛けが作成できます。また、最低限の文法や活用方法を知っている場合、コピーして実装できるコンテンツも多数あります。

最初は他人が書いたものをコピーするだけでも、一つ一つ理解し、自分なりに考えて改変することで、より多くのことが理解できます。 自分で学習をしてみて、必要な環境が実はハードルも低く、解説している記事も多いため、学習が容易であると感じました。今後も、デザイナーとしてできることの幅を広げるために学習を続けていきます。

参考

https://www.sejuku.net/blog/104042M

https://www.youtube.com/watch?v=-2dyyzU2O-o

また、チャットGPTをコードの修正と解説に利用しました。
https://chat.openai.com/

Author Profile

著者近影

KANAZAWA

長年webデザイナーをしておりました。業務の幅を広めるため日々勉強しています。

SHARE

合わせて読みたい