ページトップボタン
ページトップボタン デモ概要
HTMLコード
bodyタグにid="#pagetop"を設定します。
<body id="pagetop"></body>ページトップボタンは下記のコードにより実装されます。
<a class="pagetop" href="#pagetop" aria-label="このページの先頭へ">TOP</a> 最小設定
new PageTop(".pagetop");<a class="pagetop" href="#pagetop" aria-label="このページの先頭へ">TOP</a> デフォルトでは200px以上スクロールした時にボタンが表示されます。
オプション
| オプション | 概要 |
|---|---|
| target | フッター等の基準要素のセレクターを指定します。(省略可) |
| threshold | ボタンが表示されるスクロール閾値を指定します。(省略可) |
| activeClass | 表示時に付与されるクラス名を指定します。(省略可) |
| bottomClass | フッター到達時に付与されるクラス名を指定します。(省略可) |
| fixed | ボタンをtargetで指定した要素の直前で固定します。(省略可) |
target
target: string | null = null
フッター等の基準要素のセレクターを指定します。この要素に近づくとボタンがabsoluteポジションに切り替わります。
new PageTop(".pagetop", {
target: "footer",
});targetを指定することで、フッターに重ならないようにボタンの位置が調整されます。
threshold
threshold: number = 200
ボタンが表示されるスクロール閾値をピクセル単位で指定します。
new PageTop(".pagetop", {
threshold: 500,
});threshold: 0 を指定すると、ページ読み込み時からボタンが表示されます。
activeClass
activeClass: string = "is-active"
ボタンが表示される時に付与されるクラス名を指定します。
new PageTop(".pagetop", {
activeClass: "is-visible",
});CSSでボタンの表示・非表示アニメーションを制御する際に使用します。
bottomClass
bottomClass: string = "is-bottom"
フッター等の基準要素に到達した時に付与されるクラス名を指定します。
new PageTop(".pagetop", {
target: "footer",
bottomClass: "is-at-footer",
});フッター到達時の特別なスタイリングが必要な場合に使用します。
fixed
fixed: boolean = true
ボタンをtargetで指定した要素の直前で固定します。
new PageTop(".pagetop", {
fixed: false,
});fixed: falseを指定すると、targetで指定した要素の直前で固定されません。
使用例
基本的な使用例
// 基本設定
new PageTop(".pagetop");
// 閾値なしで常時表示
new PageTop(".pagetop", {
threshold: 0,
});
// カスタムクラス名
new PageTop(".pagetop", {
activeClass: "show",
bottomClass: "footer-mode",
});実装要件
基本機能
- スクロール監視:ページのスクロール位置を監視し、指定した閾値を超えた時にボタンを表示
- スムーズスクロール:ボタンクリック時にページトップへのスムーズなスクロール動作
- 表示制御:CSS transitionと連携したスムーズな表示・非表示アニメーション
- 位置調整:フッター等の要素に重ならないような動的な配置制御
アクセシビリティ
- キーボード操作:Tab移動とEnterキーでの操作対応
- ARIAサポート:aria-labelによる適切なボタンの説明とaria-hidden制御
- フォーカス管理:ボタンの表示・非表示時の適切なフォーカス状態管理
- スクリーンリーダー対応:ボタンの目的と状態の明確な伝達