LoginSignup
8
6

More than 5 years have passed since last update.

ページのスクロール量を取得しようとしてハマった話

Last updated at Posted at 2018-08-30

発生した問題

下記のコードで実装後ブラウザ間で動く動かない問題が生じた


$(function () {
  $(window).scroll(function () {
    if ($(this).scrollTop() > 380) {
      $('.adsense').addClass('show');
    }
  });
});

scrollTop()を使いスクロール量を取得しようとしていたが、未対応ブラウザが多かった。
https://chaika.hatenablog.com/entry/2017/09/22/090000

解決策

pageYOffsetを使う。
こっちの方が対応範囲が広い。
https://lab.syncer.jp/Web/API_Interface/Reference/IDL/Window/pageYOffset/
IE9以前はデフォルトでaddClass("show")する。

$(function() {
  $(window).scroll(function () {
    if (window.pageYOffset > 380) {
      $('.adsense').addClass('show');
    }
    // 未対応ブラウザ(ie9以前)の場合
    if (window.pageXOffset == undefined) {
      $(".adsense").addClass("show");
    }
  });
});
8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6