jQueryでスクロール位置を取得・設定する:scrollTop()
今回は jQuery でスクロール位置を取得・設定する方法について説明します。
スクロール位置を使うことで、ページ内の特定位置に移動したり、スクロール位置によって表示を変更したりできます。
スクロール位置を取得する
スクロール位置を取得するためには scrollTop() メソッドを使います。
scrollTop () メソッドは戻り値として、水平方向のスクロール位置を返します。このとき、最上部が 0 となります。
scrollTop() メソッドの記述方法は以下の通りです。
jQueryオブジェクト.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>
以下のスクロール領域 をスクロールすると、現在のスクロール位置が表示されます。
スクロール位置:0px
スクロール可能領域
スクロール位置を設定し移動する
scrollTop() の引数にスクロール値を指定することによって、スクロール位置を設定することができます。
jQueryオブジェクト.scrollTop(スクロール位置)
最上部に移動する場合は引数に 0 指定します。
サンプル
以下はページの水平方向の 300 px の位置に移動する例です。
<!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>
以下のボタンを押すと指定したスクロール位置に移動します。
ボタンを押すとページの 300px の位置に移動します。
スクロール時にアニメーションさせたい場合は「jQueryでページ内スクロールの速度・位置をカスタマイズする」の記事を参考にしてください。