jQuery【 scrolltop 】スクロール位置の取得と設定

colmun_main11620

jQuery の scrollTop メソッドを使用すると、スクロール位置を取得したり変更したりすることができます。
今回は、jQuery の scrollTop メソッドの使い方を紹介したいと思います。

目次

 
1.scrollTop メソッド
2.スクロールの垂直位置を取得
3.スクロールの垂直位置を変更

1.scrollTop メソッド

 
scrollTop メソッドは、次のように記述して使用します。

$(セレクタ).scrollTop([value]);

●scrollTop メソッドを 引数無しで使用すると、マッチする最初の要素のスクロールの垂直位置を取得します。

スクロールの垂直位置は、スクロール領域に隠れた長さと同じです。
また、スクロールが一番上にあるか スクロール領域がない場合は、垂直位置は 0 となります。

画面全体のスクロール位置を取得したい場合には、「 $(window).scrollTop(); 」と記述します。

 
●scrollTop メソッドに引数を設定して使用すると、スクロール位置を変更することができます。

引数の内容は以下の通りです。

.scrollTop([value])

value
スクロールの新しい垂直位置を指定
0 が最上部

▲目次へ戻る

 

2.スクロールの垂直位置を取得

 
scrollTop メソッドを使用して、スクロールの垂直位置を取得します。
下の枠線内でスクロール位置を変えて ボタンをクリックしてみて下さい。


 

1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999

 
上のサンプルのソースコードは次の通りです。

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
<!--
$(function() {
  $("#wk_btn").on("click", function() {
    $("#wk_spn").text("  scrollTop:" + $("#wk_scroll").scrollTop());
  });
});
//-->
</script>

<div style="background-color : #CCC; padding : 20px;">
  <input type="button" id="wk_btn" value="スクロールの垂直位置">
  <span id="wk_spn" > </span>
  <div id="wk_scroll" style="border:solid #555; height:100px; overflow:scroll;">
  1111111111<br>
  2222222222<br>
  3333333333<br>
  4444444444<br>
  5555555555<br>
  6666666666<br>
  7777777777<br>
  8888888888<br>
  9999999999
  </div>
</div>

 
上のサンプルは、ボタンをクリックした際にスクロール位置を取得していますが、スクロールと同時にスクロール位置を取得することもできます。

下の枠線内でスクロールしてみて下さい。

 

1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999

 
上のサンプルのソースコードは次の通りです。

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
<!--
$(function() {
  $("#wk_scroll2").on("scroll", function() {
    $("#wk_spn2").text("  scrollTop:" + $(this).scrollTop());
  });
});
//-->
</script>

<div style="background-color : #CCC; padding : 20px;">
  <span id="wk_spn2" > </span>
  <div id="wk_scroll2" style="border:solid #555; height:100px; overflow:scroll;">
  1111111111<br>
  2222222222<br>
  3333333333<br>
  4444444444<br>
  5555555555<br>
  6666666666<br>
  7777777777<br>
  8888888888<br>
  9999999999
  </div>
</div>

▲目次へ戻る

 

3.スクロールの垂直位置を変更

 
scrollTop メソッドを使用し、スクロールの垂直位置を変更して表示位置を移動します。
入力欄に 0 以上の数値を入力して 移動ボタンをクリックしてみて下さい。

スクロール位置: px へ

 
上のサンプルのソースコードは次の通りです。

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
<!--
$(function() {
  $("#wk_btn2").on("click", function() {
    $(window).scrollTop($("#wk_num").val());
  });
});
//-->
</script>

<div style="background-color:#CCC; padding:20px;">
  <div style="display:inline-flex; align-items:center;">
    スクロール位置: <input type="text" id="wk_num" style="width:60px;"> px へ
    <input type="button" id="wk_btn2" value="移動">
  </div>
</div>

▲目次へ戻る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です