• Home
  • jQueryを用いてスクロール位置の取得と設定方法について

jQueryを用いてスクロール位置の取得と設定方法について

記事のサムネイル

この記事では、jQuery を利用してページ内のスクロール位置を取得・設定する方法について詳しく解説します。

スクロール位置の取得方法

特定の位置にページ内で移動したり、表示を変更する際に、スクロール位置は重要な情報です。スクロール位置を取得するには、scrollTop()メソッドを使用します。このメソッドは、垂直方向のスクロール位置を返します。また、ページの最上部が 0 となります。

以下がscrollTop()メソッドの記述例です。

$(要素).scrollTop();

例えば、<div>要素のスクロール位置を取得する場合は、以下のように記述します。

$("div").scrollTop();

ブラウザ全体のスクロール位置を取得する場合は、$(window)を指定します。

$(window).scrollTop();

以下は、スクロール時に現在のスクロール位置を表示するサンプルコードです。

<!DOCTYPE html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>

<body>
  <p>スクロール位置:<span id="scroll-amount">0px</span></p>
  <div id="scroll-box">
    <div id="scroll-contents">スクロール領域</div>
  </div>
</body>

<style>
#scroll-box {
  overflow: scroll;
  height: 100px;
  border: 1px solid black;
}

#scroll-contents {
  height: 700px;
}
</style>

<script>
  $('#scroll-box').scroll(function() {
    $('#scroll-amount').text($(this).scrollTop() + 'px');
  });
</script>

</html>

スクロール領域を操作することで、現在のスクロール位置が表示されます。

スクロール位置の設定と移動方法

scrollTop()メソッドの引数に特定のスクロール値を指定することで、スクロール位置を設定することができます。ページの最上部に移動する場合は、引数に 0 を指定します。

以下は、ページの水平方向に 300px の位置に移動するサンプルコードです。

<!DOCTYPE html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>

<body>
  <p>ボタンを押すとページが300pxの位置に移動します。</p>
  <button id="button">移動する</button>
</body>

<script>
  $('#button').on('click', function(){
    $(window).scrollTop(300);
  });
</script>

</html>

ボタンをクリックすることで、指定したスクロール位置に移動します。

スクロール時にアニメーションを実装したい場合は、"jQuery でページ内スクロールの速度・位置をカスタマイズする"の記事を参考にすることをおすすめします。これによって、滑らかなアニメーションとカスタマイズされた位置設定を実現できます。

スクロール位置の取得と設定は、Web ページのユーザーエクスペリエンスを向上させるために重要なテクニックです。jQuery を利用して、スクロールに関する操作をスムーズに行いましょう。

実装やエラーが解決できない場合

プログラミングの実装やエラーでどうしてもわからない場合はメンターに相談するのが一番です。

考えている、見えている範囲が狭くなり、解決から遠くに行って何時間も、何日も経っていることなんてよくある話です。

そういう時は聞ける先輩や、メンターに相談することが大事です。

僕にも相談可能なので気軽に相談してください。

ご相談はこちら
(Twitterのプロフィールへ飛びます)

OTHER ARTICLES

  • Web制作

  • Rails

railsでjsではなくrubyでtooltipの単位を設定するときの話

2024/08/20
  • Web制作

  • Rails

Railsにおけるクラスメソッドとインスタンスメソッドの違いについて

2024/05/30
  • Web制作

  • Docker

  • Rails

DockerでRails7 + PostgreSQL + esbuildの環境を構築する方法

2024/05/16
  • Web制作

  • Rails

  • Docker

Dockerで建てたrails7環境で「undefined method `devise' for 〜」が発生した話

2024/05/16
  • Web制作

  • Rails

Ruby on RailsのルーティングとRESTfulルート

2024/05/09
  • Web制作

  • Rails

Ruby on Railsにおけるresourceとresourcesの違い

2024/05/01
管理者のイメージ画像

PROFILE

Youta

山口県出身の現役のWebエンジニアです。仕事を通して学んだことや、生活していく中で学んだことを発信していきます。

CATEGORY