速報

AWS SDK for pandasのIceberg書き込みにSQL注入|Glueの変更権限も点検

CATEGORY

【JavaScript】スクロール量を取得する【pageXOffset、pageYOffset】

※本ページのリンクにはプロモーションが含まれています。

【JavaScript】スクロール量を取得する【pageXOffset、pageYOffset】

目次

JavaScriptでブラウザのスクロール量を取得する方法のご紹介です。

スクロール量を取得するだけの処理を作るというのは考えにくいですが、スクロールした後に何か処理をしたい、というような場合にお役に立つかと思います。

本記事の内容

  • 縦方向のスクロール量を取得する
  • 横方向の対するスクロール量を取得する
  • scrollXとscrollYについて

では解説していきます。

スポンサーリンク

縦方向のスクロール量を取得する

縦方向のスクロールを取得する方法になります。縦方向のスクロールを取得するには「pageYOffset」を使用します。

具体的には、下記のように記述します。windowオブジェクトのpageYOffsetで取得できます。

window.pageYOffset;

試しにスクロールイベントが発生した際にスクロール量をコンソールに出力してみます。

window.addEventListener('scroll', ()=> {
  console.log(window.pageYOffset);
});

上記を実行すると下記のデモのように縦方向のスクロール量を取得することができます。出力方法を変更して、簡単なスタイルを適用しております。(小数点以下は切り捨てています。)

See the Pen window.pageYOffset|JavaScript by ryoy (@intotheprogram) on CodePen.

以上が縦方向のスクロール量を取得する方法です。より詳しく知りたい方は下記のリンクを見ていただければと存じます。

window.pageYOffset

横方向の対するスクロール量を取得する

続いて、横方向のスクロール量を取得する方法になります。

「YをXに変えるだけかな?」

とお察しの方もいらっしゃるかと思いますが、まさしくその通りです。

縦方向のスクロール量を取得するには「pageYOffset」を使用しましたが、横方向のスクロール量は「pageXOffset」を使って取得します。

具体的には、下記のように記述します。windowオブジェクトのpageXOffsetで取得できます。

window.pageXOffset;

試しにスクロールイベントが発生した際に現在のスクロール量をコンソールに出力してみます。

window.addEventListener('scroll', ()=> {
  console.log(window.pageXOffset);
});

下記は、縦方向でご紹介したデモと同じ仕様で作った、横方向のスクロール量を取得するデモになります。

See the Pen XyVoEN by ryoy (@intotheprogram) on CodePen.

pageXOffsetは、下記のリンク先に詳しい説明があります。英語ページとなりますので、翻訳してご覧ください。

window.pageXOffset

スポンサーリンク

scrollXとscrollYについて

縦方向と横方向の取得方法として、「pageYOffset」と「pageXOffset」をご紹介しました。

基本的には上記の方法で実装していただいて大丈夫です。ただ、IEを考慮する必要がないのであれば下記の方法でも縦横のスクロール方法を取得することが可能となっています。

scrollY

scrollYは縦方向のスクロール量を取得することができます。使い方は「pageYOffset」の部分を「scrollY」に置き換えます。

window.scrollY;

scrollX

scrollXは横方向のスクロール量を取得することができます。使い方は「pageXOffset」の部分を「scrollX」に置き換えます。

window.scrollX;

下記のリンクをみていただければお分かりいただけますが、IEには対応しておりませんので、使用される際にはご注意ください。

Window.scrollY - Web APIs | MDN

Window.scrollX - Web APIs | MDN

まとめ

最後に縦方向、横方向のスクロール量の取得方法をまとめます。

  • 縦方向:window.pageYOffset
  • 横方向:window.pageXOffset

IEを考慮されない場合は下記方法での記述も可能です。

  • 縦方向:window.scrollY
  • 横方向:window.scrollX

本記事でご紹介したスクロール量を取得する方法は、Web制作をする上でよく使用する処理になります。スクロールして固定であったり、スクロール位置によって色を変えたり、スクロールして非表示にしたりと用途は様々です。色々な場面で活かせる処理かと思いますので、多様な表現を身につけていただければ幸いです。

以上、JavaScriptのpageYOffsetとpageXOffsetでスクロール量を取得する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク