トップへ戻るボタンの作り方|HTML・CSS・JavaScriptをコピペ

トップへ戻るボタンを実装して確認するWeb制作者 ホームページ作成

縦に長いホームページでは、ページ下部まで読んだ利用者がメニューや最初の案内へ戻るために、何度もスクロールする必要があります。「トップへ戻る」ボタンを設置すると、長い料金表、施工事例、FAQを読んだあとでも簡単に上へ移動できます。

本記事では、HTML・CSS・JavaScriptで作る基本コードと、スクロールしたときだけ表示する方法を紹介します。

トップへ戻るボタンが役立つページ

長いスマートフォンページを下までスクロールした利用者
長いページでは、先頭へ戻るための移動負担を減らせます。

サービス紹介が多いページ、商品一覧、長い記事、FAQページなどで役立ちます。一方、1画面程度の短いページでは必要ありません。ボタンを増やすことより、利用者の移動負担があるかで判断します。

ボタンのHTMLを追加する

次のHTMLを</body>の直前へ追加します。

<button
  id="back-to-top"
  class="back-to-top"
  type="button"
  aria-label="ページの先頭へ戻る"
>
  ↑
</button>

記号だけでは目的が伝わりにくいため、aria-labelでボタンの役割を補足しています。画像ではなく本物のbutton要素を使います。

CSSで右下に固定する

ページ右下の丸いトップへ戻るボタンをCSSで調整する担当者
画面右下に固定し、ほかのボタンと重ならない位置に調整します。
.back-to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 900;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: #123b5d;
  color: #fff;
  font-size: 22px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .2s, transform .2s, visibility .2s;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back-to-top:focus-visible {
  outline: 3px solid #f0b429;
  outline-offset: 3px;
}

最初は非表示にし、is-visibleクラスが付いたときだけ表示します。問い合わせ固定ボタンがある場合は、bottomの数値を大きくして重ならないように調整してください。

JavaScriptで表示とスクロールを制御する

スクロールに合わせてトップボタンが表示される動作をテストする制作者
一定量スクロールしたときだけ表示し、クリックで先頭へ移動させます。
const backToTop = document.getElementById('back-to-top');

window.addEventListener('scroll', () => {
  const shouldShow = window.scrollY > 500;
  backToTop.classList.toggle('is-visible', shouldShow);
});

backToTop.addEventListener('click', () => {
  window.scrollTo({
    top: 0,
    behavior: 'smooth'
  });
});

この例では500px以上スクロールすると表示します。ページの長さに合わせて数値を変更できます。

動きを減らす設定にも配慮する

端末でアニメーションを減らす設定を使っている人には、瞬時に移動するようにできます。

const reduceMotion = window.matchMedia(
  '(prefers-reduced-motion: reduce)'
).matches;

backToTop.addEventListener('click', () => {
  window.scrollTo({
    top: 0,
    behavior: reduceMotion ? 'auto' : 'smooth'
  });
});

前のクリック処理と置き換えて使用してください。二重に登録すると同じ操作が複数回動くため注意します。

WordPressへ追加するときの注意点

HTMLはフッター付近、CSSは追加CSS、JavaScriptは子テーマやコード追加機能へ入れます。テーマやプラグインに同じ機能がある場合は、二重設置を避けます。

WordPressが自動的にコードを書き換える環境では、テーマの機能や信頼できるコード管理方法を利用してください。

設置後に確認すること

  • 一定量スクロールした後だけ表示されるか
  • クリックでページ先頭へ戻るか
  • キーボードで選択・操作できるか
  • 問い合わせボタンやCookie通知と重ならないか
  • スマートフォンの横向きでも邪魔にならないか

まとめ

トップへ戻るボタンは、長いページの移動を助ける小さな改善です。常に表示せず、十分にスクロールしたときだけ表示し、既存の固定要素と重ならないように調整しましょう。

スマートフォンで操作しやすいホームページを、完成イメージから確認できます。

ホームページクエストなら、必要な掲載内容と導線を選びながらページを作成できます。

ホームページクエストを試す

スポンサーリンク
スポンサーリンク
ホームページ作成
webo(ウェブ夫)をフォローする

コメント

タイトルとURLをコピーしました