jQueryでdivへスクロールする
jQueryでdiv要素までスクロールする
jQueryを使って特定のdiv要素までスクロールする方法は、主に2つあります。
animate()メソッドを使用する
$('html, body').animate({
scrollTop: $('#targetDiv').offset().top
}, 800); // 800ミリ秒のアニメーション
- 800
アニメーションの時間をミリ秒で指定します。 - animate()
指定したプロパティをアニメーションで変更します。scrollTop
: スクロール位置を設定します。$('#targetDiv').offset().top
:** 対象のdiv要素のオフセットトップ(ページ上端からの距離)を取得します。
- $('html, body')
HTML要素とBODY要素を対象にします。
scrollTo()プラグインを使用する
$.scrollTo('#targetDiv', 800); // 800ミリ秒のスクロール
- $.scrollTo()
jQueryのスクロールプラグインを使用します。#targetDiv
:** スクロールする対象の要素のセレクタです。800
:** スクロールの時間をミリ秒で指定します。
注意
- スクロールのスムーズさはブラウザやデバイスによって異なる場合があります。
scrollTo()
プラグインを使用する場合は、事前にプラグインをダウンロードして読み込む必要があります。
例
<div id="targetDiv">スクロールする対象のdiv</div>
$(document).ready(function() {
$('#scrollToButton').click(function() {
// animate()を使用する場合
$('html, body').animate({
scrollTop: $('#targetDiv').offset().top
}, 800);
// scrollTo()プラグインを使用する場合
// $.scrollTo('#targetDiv', 800);
});
});
コード解説
$('html, body').animate({
scrollTop: $('#targetDiv').offset().top
}, 800); // 800ミリ秒のアニメーション
このコードは、targetDiv
要素までスムーズにスクロールするアニメーションを作成します。
$.scrollTo('#targetDiv', 800); // 800ミリ秒のスクロール
このコードは、scrollTo()
プラグインを使用してtargetDiv
要素までスムーズにスクロールします。
HTMLコード
<div id="targetDiv">スクロールする対象のdiv</div>
<button id="scrollToButton">スクロール</button>
JavaScriptコード
$(document).ready(function() {
$('#scrollToButton').click(function() {
// animate()を使用する場合
$('html, body').animate({
scrollTop: $('#targetDiv').offset().top
}, 800);
// scrollTo()プラグインを使用する場合
// $.scrollTo('#targetDiv', 800);
});
});
window.scrollTo()を使用する
window.scrollTo(0, $('#targetDiv').offset().top);
- window.scrollTo()
ブラウザのスクロール位置を直接設定します。- 第1引数: 横方向のスクロール位置(通常は0)
- 第2引数: 縦方向のスクロール位置(
$('#targetDiv').offset().top
で取得)
scrollTopプロパティを直接設定する
$('html, body').scrollTop($('#targetDiv').offset().top);
position()メソッドを使用する
$('html, body').scrollTop($('#targetDiv').position().top);
- position()
相対的な位置を取得します。
offset()メソッドとinnerHeight()メソッドを使用する
$('html, body').scrollTop($('#targetDiv').offset().top - $(window).innerHeight() / 2);
- 対象のdiv要素の中央がウィンドウの中央に来るようにスクロールします。
- innerHeight()
ウィンドウの高さを取得します。
offset()
メソッドとinnerHeight()
メソッドを使用する方法は、対象のdiv要素の中央がウィンドウの中央に来るようにスクロールします。scrollTop
プロパティやposition()
メソッドは、直接スクロール位置を設定するため、アニメーション効果はありません。window.scrollTo()
はブラウザのスクロール位置を直接設定するため、アニメーション効果はありません。
$(document).ready(function() {
$('#scrollToButton').click(function() {
// window.scrollTo()を使用する場合
window.scrollTo(0, $('#targetDiv').offset().top);
// scrollTopプロパティを使用する場合
$('html, body').scrollTop($('#targetDiv').offset().top);
// position()メソッドを使用する場合
$('html, body').scrollTop($('#targetDiv').position().top);
// offset()メソッドとinnerHeight()メソッドを使用する場合
$('html, body').scrollTop($('#targetDiv').offset().top - $(window).innerHeight() / 2);
});
});
jquery scroll