第7回: JavaScript / jQuery 基礎:動きの仕組み
この回の目標
- JavaScriptがプログラミング言語だと理解できる
- 書けなくても「何をやっているか」が理解できる
- よく使う動きを自分で組み立てられる
JavaScriptとは
JavaScriptとは何か?
Webサイトやシステムの開発に使われているプログラミング言語
HTML/CSSとの役割の違い
- HTML:構造
- CSS:見た目
- JavaScript:動き・反応
JavaScriptを使うと、Webページに「動き」をつけることができます。
JavaScriptが使われている例
クリックで表示/非表示
ここが表示されます!
メニューの開閉
スクロールで表示
JavaScriptの使い方
JSファイルの作成
js/script.jsを作成する
HTML内でJSファイルを読み込む
<script src="script.js"></script>
👉 基本は bodyの一番下
JavaScriptでできること
CSSだけではできなかった動きをつけることができる
CSS
例:ボタンにマウスを乗せると色が変わる
入力:マウスが乗った
出力:見た目を変える
👉 hover
ただし…
👉 マウスを外すと元に戻る
👉 一時的に見た目を変えるだけ
📌 状態を覚えられない
📌 変化を維持できない
JavaScript
例:クリックで開く/閉じる
入力:クリックされた
状態:開いている or 閉じている
判断:開いてたら → 閉じる
閉じてたら → 開く
👉 開く/閉じるの状態を「覚えている」
👉 状態によってどのアクションを起こすか「判断できる」
JavaScriptの基本
変数
let isOpen = false;
値を入れて使い回せる箱(例:開いている or 閉じている)
例:
isOpen = false; ・・・ 閉じている
isOpen = true; ・・・ 開いている
条件によって動きを変える(if文)
if (isOpen) {
// 開いている時
} else {
// 閉じている時
}
状態によって処理を変えられる
ifを使うと条件を「分岐」できる
同じ処理を繰り返す(for)
for (let i = 0; i < 3; i++) {
console.log(i);
}
同じ処理を何回もやる仕組み。
forを使うと処理を「繰り返し」できる
JavaScriptが動く仕組み
DOM(Document Object Model)
HTML文書をJavaScriptから操作可能な形式に変換する仕組み
特別なツールや環境を用意する必要はなし
- 要素の取得
- スタイルの変更(文字色変更など)
- クラスの付与
などが可能
DOM操作の例
document.querySelector(".box");
👉 .boxのHTMLを取得している
イベント
JavaScriptはきっかけがないと動かない
👉 何かの「きっかけ」が必要
「きっかけ」=イベント
例:クリック、スクロール
button.addEventListener("click", function() {
// 処理
});
👉 「クリックされたら動く」
実演
const button = document.querySelector(".button");
button.addEventListener("click", function() {
alert("クリックされた!");
});
JavaScriptの基本パターン
クラスを付け替える
// ボタン取得
const button = document.querySelector(".button");
// クリックイベント
button.addEventListener("click", function() {
button.classList.toggle("active");
});
👉 JSの役割
クラスをつける / 外す
👉 CSSの役割
見た目を変える
スクロール時の処理
window.addEventListener("scroll", function() {
const scroll = window.scrollY; // 今のスクロール位置
const windowHeight = window.innerHeight; // 画面の高さ
const boxes = document.querySelectorAll(".fade-in");
boxes.forEach(function(box) {
const boxTop = box.offsetTop; // 要素の位置
if (scroll + windowHeight > boxTop) {
box.classList.add("active");
}
});
});
① スクロールされたら処理が動く
👉 scrollイベント
② 要素の位置を取得
👉 offsetTop
③ 画面に入ったか判定
スクロール位置 + 画面の高さ > 要素の位置
④ 入ったらクラスを付ける
👉 .active を追加
.fade-in {
opacity: 0;
transform: translateY(20px);
transition: 0.5s;
}
.fade-in.active {
opacity: 1;
transform: translateY(0);
}
jQuery
jQueryとは?
JavaScriptを簡単に書くためのライブラリ。
JavaScriptとの書き方の違い
// JS
document.querySelector(".btn");
// jQuery
$(".btn");
現在はJSでも十分書ける。
⑨ エラーとの付き合い方
コンソールを見る
右クリック → 検証 → Console
よくある原因
- スペルミス
- HTMLが存在しない
- 読み込み順の問題
⑩ ミニ課題
クリックで開閉する要素を作ろう。
const btn = document.querySelector(".btn");
const box = document.querySelector(".box");
btn.addEventListener("click", function() {
box.classList.toggle("open");
});
CSSと連携させて動きを作る。
JSは全部書けなくてもいい。 「何をしているか」が分かれば使える。
この回のまとめ
- JavaScriptは動きを作る言語
- 条件によって処理を変えられる
- クラス切り替えが基本パターン