スクロールによって、背景色を変更

目次

できること

スクロールによって、背景色を変更するコードです。

要素のクラス名やbodyの箇所を変更することで、

「特定の箇所をスクロールしている間、特定の箇所を変更」できます。

スクロール (class=”content1″)

条件

クラス名がcontent1の要素をスクロールしている間

背景色を「黒」、文字色を「白」

スクロールが終わると

背景色を「黒」、文字色を「白」

コード

<div class="content1">
</div>
document.addEventListener("DOMContentLoaded", function() {
  const content1 = document.querySelector(".content1");
  const scrollThresholdStart = 100; // 変化が始まるスクロールの閾値
  const scrollThresholdEnd = 100; // 変化が終わるスクロールの閾値

  window.addEventListener("scroll", function() {
    const scrollPosition = window.scrollY;
    const body = document.querySelector("body");
    // スクロール位置に応じて背景色と文字色を変更
    if (scrollPosition > (content1.offsetTop - scrollThresholdStart) 
     && scrollPosition < (content1.offsetTop + content1.offsetHeight + scrollThresholdEnd)
     )
     {
      body.style.backgroundColor = "black";
      body.style.color = "white"; // 文字色を白に変更
     } else {
      body.style.backgroundColor = "white";
      body.style.color = "black"; // 文字色を黒に変更
    }
  });
});
    • URLをコピーしました!
    目次