jQuery API の scrollTop() は、最初にマッチした要素の、スクロールバーの現在の垂直方向(縦)の位置を、取得するメソッド。上端をゼロとした、ピクセル単位の数値を返す。要素がスクロール可能でない場合、この数値は0になる。
記述方法
jQuery( セレクター ) . scrollTop();
「セレクター」に最初にマッチした要素の、スクロールバーの現在の垂直方向の位置を、取得する。
記述例
jQuery( '.jquery-sample' ) . scrollTop();
クラス名が「jquery-sample」である要素のうち、最初にマッチした要素の、スクロールバーの現在の垂直方向の位置を、取得する。
実装例(サンプル)
scrollTop:
scrollLeft:
実装例(サンプル)の動作について
垂直方向(縦)のスクロールバーを移動すると、「scrollTop:」の右横に、数値を表示する。
水平方向(横)のスクロールバーを移動すると、「scrollLeft:」の右横に、数値を表示する。
実装例(サンプル)のソースコード
JavaScript
<script>
<!--
jQuery( function() {
jQuery( '#jquery-sample-scrollTop' ) . scroll( function () {
var scrollTop = jQuery( this ) . scrollTop();
var scrollLeft = jQuery( this ) . scrollLeft();
jQuery( '#jquery-sample-message-scrollTop' ) . text( scrollTop + 'px' );
jQuery( '#jquery-sample-message-scrollLeft' ) . text( scrollLeft + 'px' );
} );
} );
// -->
</script>
<!--
jQuery( function() {
jQuery( '#jquery-sample-scrollTop' ) . scroll( function () {
var scrollTop = jQuery( this ) . scrollTop();
var scrollLeft = jQuery( this ) . scrollLeft();
jQuery( '#jquery-sample-message-scrollTop' ) . text( scrollTop + 'px' );
jQuery( '#jquery-sample-message-scrollLeft' ) . text( scrollLeft + 'px' );
} );
} );
// -->
</script>
CSS
<style type="text/css">
<!--
#jquery-sample {
width: 300px;
height: 270px;
margin: 10px;
padding: 20px;
background-color: pink;
border: 1px solid gray;
border-radius: 10px;
}
#jquery-sample-scrollTop {
width: 150px;
height: 150px;
margin-top: 10px;
overflow: scroll;
background-color: yellow;
border: 20px solid purple;
border-radius: 20px;
}
#jquery-sample-scrollTop div div {
float: left;
width: 100px;
height: 100px;
border: 1px solid gray;
border-radius: 20px;
}
-->
</style>
<!--
#jquery-sample {
width: 300px;
height: 270px;
margin: 10px;
padding: 20px;
background-color: pink;
border: 1px solid gray;
border-radius: 10px;
}
#jquery-sample-scrollTop {
width: 150px;
height: 150px;
margin-top: 10px;
overflow: scroll;
background-color: yellow;
border: 20px solid purple;
border-radius: 20px;
}
#jquery-sample-scrollTop div div {
float: left;
width: 100px;
height: 100px;
border: 1px solid gray;
border-radius: 20px;
}
-->
</style>
HTML
<div id="jquery-sample">
<p>
scrollTop:<span id="jquery-sample-message-scrollTop"></span>
</p>
<p>
scrollLeft:<span id="jquery-sample-message-scrollLeft"></span>
</p>
<div id="jquery-sample-scrollTop">
<div style="width: 306px;">
<div style="background-color: red;"></div>
<div style="background-color: blue;"></div>
<div style="background-color: green;"></div>
<span style="clear: left;"></span>
<div style="background-color: red;"></div>
<div style="background-color: blue;"></div>
<div style="background-color: green;"></div>
<span style="clear: left;"></span>
<div style="background-color: red;"></div>
<div style="background-color: blue;"></div>
<div style="background-color: green;"></div>
<span style="clear: left;"></span>
</div>
</div>
</div>
<p>
scrollTop:<span id="jquery-sample-message-scrollTop"></span>
</p>
<p>
scrollLeft:<span id="jquery-sample-message-scrollLeft"></span>
</p>
<div id="jquery-sample-scrollTop">
<div style="width: 306px;">
<div style="background-color: red;"></div>
<div style="background-color: blue;"></div>
<div style="background-color: green;"></div>
<span style="clear: left;"></span>
<div style="background-color: red;"></div>
<div style="background-color: blue;"></div>
<div style="background-color: green;"></div>
<span style="clear: left;"></span>
<div style="background-color: red;"></div>
<div style="background-color: blue;"></div>
<div style="background-color: green;"></div>
<span style="clear: left;"></span>
</div>
</div>
</div>