LoginSignup
1
0

More than 3 years have passed since last update.

スクロールして画面に表示されたらイベントが発生する

Posted at

やりたいこと

スクロールして要素が画面に表示されると同時にイベントを発生させたい。

stylesheet.scss

$(window).scroll(function () {
  $(".slide").each(function (index, el) {
    let scroll = $(window).scrollTop();
    let offset = $(el).offset().top;
    let winH = $(window).height();
    if (scroll > offset - winH / 2) {
      $(el).addClass("in");
    }
  });
});

表示させたい要素のクラス名が「slide」で、複数の要素に当てたいので、「each」を使って繰り返し処理をかけています。

とりあえず画面中央まで来たらイベントが発生するように記述していますが、winH/2の2の部分を、小さい数字に変えていくと、早くイベントを発生させることができますし、大きい数字に変えると遅くイベントを発生させることができます。

結論

elが何者かよくわかっていないのでこれからも勉強します。。
thisのようなものだとは聞いたがイマイチ…

1
0
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
1
0