スクロール追従するトップへ戻るボタンを追加する方法
ページを下にスクロールすると、右下に「トップへ戻る」ボタンが表示される機能を実装します。
functions.php にコードを追加し、CSSでデザインを整えるだけで実現できます。
実装のポイント
- functions.php にボタンとJavaScriptを追加する
- スクロール位置に応じてボタンを表示・非表示に切り替える
- CSSでデザインをテーマに合わせて調整する
functions.php にコードを追加
// トップへ戻るボタンをフッターに出力
function my_scroll_to_top_button() {
echo '<button id="scrollTopBtn" aria-label="トップへ戻る">▲</button>';
}
add_action('wp_footer', 'my_scroll_to_top_button');
// スクロール用スクリプト
function my_scroll_to_top_script() {
?>
<script>
document.addEventListener('DOMContentLoaded', function() {
const btn = document.getElementById('scrollTopBtn');
if (!btn) return;
btn.style.display = 'none';
window.addEventListener('scroll', function() {
if (window.scrollY > 300) {
btn.style.display = 'block';
} else {
btn.style.display = 'none';
}
});
btn.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
});
</script>
<?php
}
add_action('wp_footer', 'my_scroll_to_top_script', 100);
汎用CSS
/*スクロール追従するトップへ戻るボタン*/
#scrollTopBtn {
position: fixed; /* 画面のスクロールに関係なく、常に同じ位置に表示される */
right: 20px; /* 画面右端から20px内側に配置 */
bottom: 20px; /* 画面下端から20px上に配置 */
background: #333; /* ボタンの背景色を濃いグレー (#333) に設定 */
color: #fff; /* ボタン内の文字色を白に設定 */
border: none; /* ボタンの枠線をなくす */
padding: 12px 16px; /* 上下12px、左右16pxの内側余白を設定 */
border-radius: 50%; /* 角丸を50%にして丸いボタンにする */
font-size: 18px; /* 文字サイズを18pxに設定 */
cursor: pointer; /* ホバー時にマウスカーソルが手の形になる */
z-index: 9999; /* 他の要素より前面に表示されるように設定 */
display: none; /* 初期状態では非表示にする(スクロール時にJavaScriptで表示切替) */
}
#scrollTopBtn:hover {
opacity: 0.8; /* ホバー時に少し透明にして押せる感を演出 */
}
代用プラグイン
コードを編集せずに導入したい場合は、以下のようなプラグインを利用する方法もあります。
- WPFront Scroll Top – 簡単にトップへ戻るボタンを追加可能
- Simple Scroll to Top Button – 軽量でシンプル
まとめ
「トップへ戻るボタン」はユーザーの利便性を高める必須機能のひとつです。
functions.php と CSS の追加だけで簡単に実装できるので、ぜひ試してみてください。