(Sample)

今回は「パララックス」と「慣性ローディング(=遅延読み込み)」という、ちょっとカッコいいWebの視覚演出について、HTMLとJavaScriptを使ったコード例をもとに、新人エンジニアでもゼロから理解できるように解説していきます!


このコードで何ができるの?

このWebページには、次の2つの演出が含まれています。

  • パララックス効果:スクロールしても背景がゆっくり動いて、立体的な印象に。
  • 遅延読み込み(慣性ローディング):スクロールで画面に入った要素だけ画像や内容を表示して、動きも軽快に!

こんな動き、見たことありませんか?Instagramや企業サイトなどでよく使われています。


パララックス効果ってなに?

パララックス(Parallax)とは、「視差効果」とも呼ばれる視覚表現で、前後の要素がスクロールで異なる速度で動くことで立体感が生まれる技法です。

実装のカギ:CSSの background-attachment: fixed;

.parallax {
    background-image: url(...);
    background-attachment: fixed;
}

  • background-attachment: fixed; によって、背景画像がスクロールしても固定され、他のコンテンツがその上を動いて見えるようになります。

例えるなら、背景が「遠くの風景」で、手前のテキストが「電車の窓を流れる景色」のように動く感じですね!


遅延読み込み(Lazy Loading)ってなに?

遅延読み込みとは、必要になったときにだけ読み込む仕組みのことです。

Webでは、ページをすべて一気に読み込むと重くなるので、「今見えているところだけロードして、残りはスクロールされたときに読み込もう!」というのがこの考え方です。


JavaScriptによる遅延読み込みの仕組み

ここでは、Intersection Observer API(交差監視API)を使っています。

Intersection Observerって?

このAPIは、ある要素が画面に表示された(=交差した)タイミングを検知して、何か処理を実行できる便利な仕組みです。

コードの流れをざっくり図解!

const observer = new IntersectionObserver((entries, observer) => {
    entries.forEach(entry => {
        if (entry.isIntersecting) {
            // 表示されたら画像を読み込む
            ...
        }
    });
}, { threshold: 0.1 });

  • isIntersectingtrue になる=画面に入ったという意味
  • threshold: 0.1 → 10%表示されたら「見えた」と判定
  • .dataset.bg を使って、後から画像を差し替えてるのもポイント!

例えると「監視カメラで画面内に誰か入ってきたらアラート出す」ような感じです。


見た目の工夫:CSSクラスの切り替え

.lazy-load {
    opacity: 0;
    transition: opacity 0.5s ease-in;
}
.lazy-load.visible {
    opacity: 1;
}

  • 初期状態は透明(opacity: 0
  • .visible クラスがついたら0.5秒かけて表示(ふわっと登場)

これはまるで「フェードイン」するような見た目の演出になります。


まとめ:どんなときに使えるの?

演出用途の例効果
パララックスブランドサイト、ランディングページリッチで印象的な雰囲気を演出
遅延読み込みブログ、画像が多いギャラリー、商品一覧ページ表示が軽くなり、読み込みが速くなる

今後の学習の指針

このデモを活かして、次はこんなことにも挑戦してみましょう!

  1. JavaScriptだけでなく、ライブラリを使ってみる
    • 例:AOS.js(Animate On Scroll)や Lazysizes.js でより簡単に!
  2. 表示されるタイミングでアニメーションを追加
    • 要素が現れたときに「ふわっ」や「スライドイン」などの演出をつけてみよう。
  3. レスポンシブ対応の工夫を覚える
    • スマホでも美しく表示されるように、CSSの @mediavh などを活用!

難しいように見える演出も、仕組みを理解すれば意外とシンプルです。

最後までお読みいただきありがとうございます。