この記事では、JavaScript初心者でも簡単に作れる「ボタンで文字を変える」ミニアプリを紹介します。一緒に手を動かしながら、JavaScriptの基礎を学んでいきましょう。
完成形を触ってみよう!
まずは動かしてみましょう。
ボタンをクリックすると、表示される文字が変わります。
👉 JavaScriptで「ボタンクリック→動きが変わる」仕組みを体験できます。
コードを書いてみよう
それでは、実際にコードを書いてみましょう。
今回は HTML・CSS(見た目の部分)と JavaScript(動きの部分)をそれぞれ分けて紹介します。
「コード」と聞くと難しく感じるかもしれませんが、今回紹介するのは、ボタンを押すと文字が変わるだけの超シンプルなものなので大丈夫です。
一行ずつ、どんな意味なのかを丁寧に説明していきます。
HTML:ボタンと表示エリアを用意する
まずは、画面に表示される部分(HTML)です。
次のコードをコピーして、VSCodeなどのエディタに貼り付けてみてください。
<div id="changeGreet">
<p id="greetArea"></p>
<button id="changeBtn">チェンジ!</button>
</div>
この部分では、HTMLでボタンと表示エリアを作り、それぞれにidを付けてJavaScriptから操作できるようにしています。
<p>タグで文字の表示エリアを作成<button>タグでクリック用のボタンを作成- それぞれに
idを設定して JavaScript と連携
CSS:Webページのデザインを指定する
CSSで見た目を少し整えます。下記のコードは一例ですので、色などお好みで変更してください。
#changeGreet {
max-width: 600px;
width: 100%;
margin: 30px auto;
padding: 30px 0;
text-align: center;
border: 1px solid #ccc;
}
#changeGreet p {
margin-bottom: 30px;
font-size: 1.4em;
}
#changeGreet button {
padding: 8px 16px;
font-size: 1.1em;
cursor: pointer;
background: #00008b;
color: #ffffff;
box-shadow: 2px 2px 4px #333;
}
#changeGreet button:hover {
background: #00488b;
}
#changeGreet button:active {
transform: translateY(2px);
box-shadow: 0 0 1px #333;
}
このコードは、HTMLのid="changeGreet"というエリア(あいさつとボタンの箱)とその中の要素に、デザインと配置を設定しています。
1. 全体エリア(#changeGreet)の設定
max-width: 600px;
エリアの最大幅を600ピクセルに制限しています。width: 100%;
画面の幅に合わせてエリアの幅をいっぱいに広げます(ただし600pxが上限)。margin: 30px auto;
上下に30pxの余白を作り、左右の余白を自動にして、エリアを中央に寄せます。padding: 30px 0;
上下に30pxの内側の余白を作り、要素と枠線の間にスペースを空けます。text-align: center;
エリア内の要素(テキストやボタン)を中央揃えにします。border: 1px solid #ccc;
薄いグレー(#ccc)の1pxの実線で枠線をつけます。
2. メッセージ部分(pタグ)の設定
margin-bottom: 30px;
メッセージの下に30pxの余白を作り、ボタンと離します。font-size: 1.4em;
文字サイズを通常の1.4倍に大きくして目立たせています。
3. ボタン(buttonタグ)の設定
padding: 8px 16px;
ボタンの内側に余白を作り、テキストが枠線にくっつかないようにしています。cursor: pointer;
マウスを乗せたときに、カーソルをクリックできる形(指の形)に変えます。background: #00008b;
ボタンの背景色を濃い青(ネイビー)に設定します。color: #ffffff;
ボタンの文字色を白に設定します。box-shadow: 2px 2px 4px #333;
ボタンの右下方向に影をつけ、立体感を出します。
4. ボタンの動作設定(ホバーとクリック)
:hover
ボタンにマウスが乗ったときに適用されるスタイルです。background: #00488b;
背景色を少し明るい青に変え、操作されていることを示します。
:active
ボタンをクリックして押さえつけている間に適用されるスタイルです。transform: translateY(2px);
ボタン全体を下に2px動かし、「沈み込む」ようなアニメーションを表現します。box-shadow: 0 0 1px #333;
影を小さくして、沈み込んだ状態の見た目を表現します。
JavaScript:ボタンを押したときの動きを作る
次に、ボタンを押したときの動きを書きます。
こちらは<script> タグで書きましょう。
const greets = ['こんにちは', 'おはよう', 'こんばんは', 'ハロー', 'お疲れ様です'];
const greetArea = document.querySelector('#greetArea');
const changeBtn = document.querySelector('#changeBtn');
let greetIndex = 0;
greetArea.textContent = greets[greetIndex];
changeBtn.addEventListener('click', () => {
greetIndex = (greetIndex + 1) % greets.length;
greetArea.textContent = greets[greetIndex];
});
1. 必要なものを準備しよう
まずは、表示する「あいさつのリスト」と、画面の「表示エリア」、そして「ボタン」を用意します。
greets:表示させたいあいさつをまとめておくリストです。greetArea:あいさつを表示する画面の場所です。changeBtn:あいさつを切り替えるボタンです。
2. 最初のあいさつを表示しよう
最初に表示するのは、リストの一番上にある「こんにちは」です。
let greetIndex = 0;
「今、何番目のあいさつを表示しているか」を覚えておくための番号です。
リストは「0番目」から始まるので、0と設定します。greetArea.textContent = greets[greetIndex];greetsリストの0番目にあるあいさつを、画面の表示エリア(greetArea)に表示します。
3. ボタンを押したときの動きを作ろう
ボタンが押されたときに、以下の2つの処理が順番に行われるように設定します。
greetIndex = (greetIndex + 1) % greets.length;
次のあいさつへ進むための計算です。greetIndexを1増やして、次のあいさつを選びます。
リストの最後まできたら、自動的に最初(0番目)に戻るように、%(余りを求める記号)を使っています。
これは、例えば「7日間で1週間」のように、ある回数までいったら最初に戻る仕組みを作るのに便利です。greetArea.textContent = greets[greetIndex];
新しく選んだあいさつを、画面に表示し直します。これで、ボタンを押すたびに画面の文字が変わるのです。
ワンポイント解説:このコードの見どころ
今回のコードでは、次の3つがポイントです。
addEventListener()
ボタンがクリックされたことを「察知」して、「何をするか」を決める設定です。このイベント設定がないと、クリックしても何も起きません。textContent
取得した要素の中身を書き換える命令です。これを使うことで、あいさつの文字をリアルタイムに切り替えられます。- %(割った余り)を使った「最初に戻る」しくみ
リストの最後までいったら、自動的に最初に戻るための計算です。これによって、(greetIndex + 1) % greets.lengthというコードで、あいさつを繰り返し表示できます。
これらが合わさることで、「ボタンを押すと文字が切り替わる」しくみが動いています。「なるほど、こうすれば動くのか!」という感覚を味わってもらえたらうれしいです。
あまりを求める剰余演算子「%」の使い方をくわしく説明しています👇
Web開発を学ぶならUdemyがおすすめ
私はUdemy(ユーデミー:プログラミングやビジネススキルなどが学べる世界最大級のオンライン学習プラットフォーム)でプログラミングを学習しています。
HTML・CSS・JavaScriptの基本から本格的なWebアプリ制作まで学べるおすすめの講座をこちらで紹介しています👇


