2020.09.23

jQuery

ページ最下部でトップへ戻るボタンを表示

デモページはこちら

ユーザーがページ最下部までスクロールしたタイミングで、トップへ戻るボタンをフェードインで表示します。ボタンをクリックまたはページ最下部よりも上部へスクロールでトップへ戻るボタンをフェードアウトさせます。

トップへ戻るボタンのhtmlは以下の通りです。

<p class="toTop"><a href="#page-top">↑</a></p>

以下のCSSを設定します。クラス名toTopのpタグは非表示にします。

.toTop {
	position: fixed;
	right: 1em;
	bottom: 1em;
	display: none;
	margin: 0;
}
.toTop a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 50px;
	height: 50Px;
	border-radius: 50%;
	background: #000;
	color: #fff;
	font-weight: bold;
}

以下jQueryのコードです。ページスクロール時の動作になります。$(document).innerHeight();でブラウザの枠外に隠れた部分も含めたドキュメント(ページ全体)の高さを取得します。$(window).innerHeight();でブラウザの高さを取得します。ドキュメントの高さからブラウザの高さを引くとページ最下部までのスクロール量になります。これを実際のスクロール量と比較してif文で判定します。
なおページ最下部までのスクロール量はトップへ戻るボタンの高さを差し引いて、if文の条件が成立するように調整しています。

$(function() {
	$(window).on('scroll', function(){
		var totoph = $('.toTop').innerHeight();
		var doch = $(document).innerHeight();
		var winh = $(window).innerHeight();
		var bottom = doch - totoph - winh; //ページ最下部までのスクロール量
		if (bottom <= $(this).scrollTop()) {
			$('.toTop').fadeIn(400);
		} else {
			$('.toTop').fadeOut(400);
		}
	});
});

関連記事

2020.09.23

jQuery

jQueryで要素を追加または移動(before・insertBefore・after・insertAfter・prepend・prependTo・append・appendTo)

デモページはこちら jQueryで要素を追加または移動するメソッドのまとめです。対象要素の直前に追加するbefore、insertBefore、対象要素の直後に…

2020.09.06

jQuery

jQueryプラグイン drawer.jsの使い方

デモページはこちら ハンバーガーメニューが実装できるjQueryプラグイン、drawer.jsの使い方です。使用にはjQuery以外にdrawer.css、is…

2020.09.28

jQuery

jQuery Migrateの使い方

デモページはこちら jQueryはバージョン1.9と3.0で大幅な仕様変更があり、jQuery Migrateはその仕様変更を補助するためのパッチです。jQue…

2022.08.25

jQuery

jQueryのhasClassメソッドでclassの付与を判定

jQueryのhasClassメソッドで要素にclassが付与されているか判定します。以下のhtmlの構造で確認します。 hasClassメソッドは引数にクラス…

2020.09.06

jQuery

jQueryで発生したエラーの対処法

コンソールでjQueryのエラーが発生した場合の対処法です。エラー発生の有無はjQueryのバージョンやfull版・slim版の違いによっても異なります。1系や…

上に戻る