39
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

下にスクロールすると上に逃げ、上にスクロールすると戻ってくるヘッダ

Last updated at Posted at 2023-04-14

多くのサイトで見られる邪魔にならないヘッダです。
スクロールに応じてhiddenクラスを追加したり消したりして実装します。

JavaScript

JavaScript
const header = document.querySelector('header');
let prevY = window.pageYOffset; // 前回のスクロール位置を初期化

window.addEventListener('scroll', () => {
  const currentY = window.pageYOffset; // 現在のスクロール位置を取得
  if (currentY < prevY) { // 上にスクロールしている場合
    header.classList.remove('hidden'); // hiddenクラスを削除して表示する
  } else { // 下にスクロールしている場合
  if (currentY > 0) { //Safariなどのバウンススクロール対策
      header.classList.add('hidden'); // hiddenクラスを追加して非表示にする
    }
  }
  prevY = currentY; // 前回のスクロール位置を更新
});

CSS

css
header {
  width: 100%;
  height: 80px;
  position: fixed;
  z-index: 10;
  transition: transform 0.3s 0.3s; /* アニメーションの設定 */
}

header.hidden {
  transform: translateY(-80px); /* ヘッダの高さだけ上に移動 */
}

デモはこちら!

See the Pen 下にスクロールすると上に逃げ、上にスクロールすると戻ってくるヘッダ by sogawa-BitStar (@sogawa-BitStar) on CodePen.

39
34
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?