Data Attribute Architecture
HTMLはただの表示器ではない。「データ格納庫」だ。
なぜHTMLにデータを書くのか?
JavaScriptの中に画像リスト(配列)を書くと、画像の追加変更のたびにJSファイルを編集する必要があります。
HTMLタグの中に data-* という「隠しポケット」を作ることで、HTMLを編集するだけでコンテンツ管理が完結します。
<img src="thumb.jpg"
data-image="hd-photo.jpg"
data-name="Wild Bird">
// JS側での取得 (datasetプロパティ)
const url = element.dataset.image;
const name = element.dataset.name;
NodeList Collection
ページ上の要素を「連番付きの箱」に整理する。
NodeListとは何か?
querySelectorAll(".thumb") は、クラス名が一致するすべての要素をかき集めて、NodeList という「番号付きの整理箱」に入れます。
課題1で4枚目の画像が動かないのは、HTML上で class="thumb" を付け忘れたため、この「整理箱」に入れてもらえなかったからです。
Event & Scope (this)
クリックされた「当事者」を特定する。
Modulo Operator Logic
if文を使わずに、数値を永遠に回転させる魔法。
世界は「余り」で回っている
時計の針は「12」を超えると「1」に戻ります。これと同じことを計算で行うのが剰余演算子(%)です。
「現在値 + 1」を「全体の数(4)」で割った余りを求めると、3の次は自動的に0になり、無限ループが完成します。
Recursion Engine
関数が自分自身を呼び出し、時間を刻む。
The Mathematics of Fade
0.01の引き算が作る滑らかな曲線。
val -= 0.01
val += 0.01
Perfect Sync (Task 2)
画像と文字を「同じ神経」でつなぐ。
bigImg.style.opacity = opacityval;
bardname.style.opacity = opacityval;