0
1

More than 1 year has passed since last update.

Intersection Observer API(targetの情報)

Last updated at Posted at 2022-11-13

Intersection Observer API(targetの情報)

 const target = document.querySelector('img');

  function callback(entries) {
    console.log(entries[0]);
  }

  const options = {
    threshold: 0.2,
  };

  const observer = new IntersectionObserver(callback, options);

  observer.observe(target);

・functionの引数を設定することで情報を受け取ることができる。
・引数は配列扱いになり、con~()で配列のように受け取る。

【中身】
・intersectionRatioはrootが何%交差しているか。
・isIntersectingは交差しているか。真偽値

実践(rootに交差したらふわっと出てくる)

cssでは、、、

img {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .3s, transform .3s;
}

img.appear {
  opacity: 1;
  transform: translateY(0);
}

JSは上と一緒である。
次に、JSとCSSと関連付ける。

 const target = document.querySelector('img');

  function callback(entries) {
    console.log(entries[0]);

    if (!entries[0].isIntersecting) {
      return;
    }

    entries[0].target.classList.add('appear');

    // if (entries[0].isIntersecting) {
    //   entries[0].target.classList.add('appear');
    // } else {
    //   entries[0].target.classList.remove('appear');
    // }
  }

  const options = {
    threshold: 0.2,
  };

  const observer = new IntersectionObserver(callback, options);

  observer.observe(target);

・intersecting()は交差した時に、tureかfalseかを判断する。
・ifの上はtureの時、下はfalseの時。
・交差終わる時にはアニメーション取りたくない。
if()のelseを消すか、!をつけてlfalseにする。
falseだったらすぐにreturnする。→何もしないで返す。

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