JavaScript

データ取得

ページ全体のスクロール位置の取得

更新日:2024-04-22

◆ページ全体のスクロール位置の取得

window.scrollX//水平(X軸)方向にスクロールした位置

window.scrollY//垂直(Y軸)方向にスクロールした位置

ページの左上を基準に上下左右のスクロール量を取得します。

左上を基準にスクロールした量が表示されるので「画面下から現れたら何らかの処理をする」といった場合は、ブラウザの高さも考慮しないといけません。

コード例

JavaScript

//addEventListenerのscrollイベントでスクロールの動きを取得します
window.addEventListener('scroll', function(){

 //x軸(横)の位置
 let scroll_x = window.scrollX;

 //y軸(縦)の位置
 let scroll_y = window.scrollY;

});

動作サンプル【sample】

コード例 - Sample

HTML

<div class="example">
 <p>x(横)軸のスクロール量 = <span id="example-1"></span></p>
 <p>y(縦)軸のスクロール量 = <span id="example-2"></span></p>
</div>

CSS

▶X軸のスクロールを分かり易くするため、画面幅最小値を1200pxで制限しています

<style>
body{
 min-width:1200px;;
}
</style>

JavaScript

<script>
document.addEventListener('mousemove', function(e){

 let mouse_sc_x = e.screenX; //x軸(横)のスクロール量
 let mouse_sc_y = e.screenY; //y軸(縦)のスクロール量//表示
 document.getElementById('example-1').innerText = mouse_sc_x;
 document.getElementById('example-2').innerText = mouse_sc_y;

});
</script>

動作例 - Sample

▶スクロールや(ブラウザの)リサイズをすると結果が表示されます ▶X軸はブラウザを1200pxより小さい幅にしてから確認してみてください

X軸(横)のスクロール量 = 0

Y軸(縦)のスクロール量 = 0

参考 - Sample

▶ページの右下までスクロールした状態で、X軸はブラウザを1200pxより小さい幅にしてから確認してみてください

ビューポートの幅【0】 + X軸スクロール量【0】 = ページの幅【0

ビューポートの高さ【0】 + Y軸スクロール量【0】 = ページの高さ【0

ビューポートはブラウザに表示されているエリアの幅・高さページの幅・高さは実際に存在するエリア(スクロールで表示される場所全て)のサイズとなります。

ページの右下までスクロールした状態で、ビューポートのサイズにスクロールした量を足すと、それぞれページのサイズが取得されているのが分かります。