jQueryを利用して、ウェブブラウザのスクロール量を取得するコードを紹介します。
jQueryでスクロール量を取得する場合は以下のメソッドを利用します。
$(this).scrollTop()
$(this).scrollLeft()
下記のHTMLファイルを作成します。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<style type="text/css">
<!--
.FloatInfo {
position: fixed;
top: 16px;
right: 16px;
width: 240px;
height: 60px;
background-color: #FFFFFF;
}
-->
</style>
<script src="jquery-2.2.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$(window).on('scroll', function () {
$("#infoFrame").text("ScrollY:" + $(this).scrollTop());
});
});
</script>
</head>
<body>
<div id="infoFrame" class="FloatInfo"></div>
<div>
<div style="height:120px;background-color:#808080">コンテンツ</div>
<div style="height:120px;background-color:#D0D0D0">コンテンツ</div>
<div style="height:120px;background-color:#808080">コンテンツ</div>
<div style="height:120px;background-color:#D0D0D0">コンテンツ</div>
<div style="height:120px;background-color:#808080">コンテンツ</div>
<div style="height:120px;background-color:#D0D0D0">コンテンツ</div>
<div style="height:120px;background-color:#808080">コンテンツ</div>
<div style="height:120px;background-color:#D0D0D0">コンテンツ</div>
</div>
</body>
</html>
スクロールイベントでは、id="infoFrame"の要素に対して、スクロール量を表示します。
上記のHTMLファイルをWebブラウザで表示します。下図の画面が表示されます。
画面をスクロールします。右側の固定エリアに縦方向のスクロール量が表示されます。
逆方向にスクロールし、画面の上部まで戻ると値は0になります。
下記のHTMLファイルを作成します。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<style type="text/css">
<!--
.FloatInfo {
position: fixed;
top: 16px;
right: 16px;
width: 240px;
height: 60px;
background-color: #FFFFFF;
}
-->
</style>
<script src="jquery-2.2.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$(window).on('scroll', function () {
$("#infoFrame").html("ScrollX:" + $(this).scrollLeft() +"<br/>"+"ScrollY:" + $(this).scrollTop());
});
});
</script>
</head>
<body>
<div id="infoFrame" class="FloatInfo"></div>
<div>
<div style="height:120px;width:1600px;background-color:#eaeaff">コンテンツ</div>
<div style="height:120px;width:1600px;background-color:#9ebeee">コンテンツ</div>
<div style="height:120px;width:1600px;background-color:#eaeaff">コンテンツ</div>
<div style="height:120px;width:1600px;background-color:#9ebeee">コンテンツ</div>
<div style="height:120px;width:1600px;background-color:#eaeaff">コンテンツ</div>
<div style="height:120px;width:1600px;background-color:#9ebeee">コンテンツ</div>
<div style="height:120px;width:1600px;background-color:#eaeaff">コンテンツ</div>
<div style="height:120px;width:1600px;background-color:#9ebeee">コンテンツ</div>
</div>
</body>
</html>
コードは先のコードと同様です。横方向のスクロール量を検出するために、onscroll内で、scrollLeft()の値を取得して画面に表示すrコードを追加しています。
上記のHTMLファイルを表示します。下図の画面が表示されます。
下方向にスクロールすると、ScrollY の値が増加します。
右方向にスクロールすると、ScrollX の値が増加します。
ページの上端までスクロールして戻ると、ScrollY の値は0になります。
同様にページの左端までスクロールして戻ると、 ScrollX の値は0になります。