試しに作ったコードで obs.unobserve(entries[0].target); がうまく動作しなかったのですが、なぜでしょうか?

リロード時に obs.unobserve() を実行してしまうので、 appear クラスを追加する処理が実行されていないようです。
2021年8月3日
ユーザー
obs.unobserve(entries[0].target);

の使い方について質問です。

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

    if (entries[0].isIntersecting){
      entries[0].target.classList.add('appear');
    } 
    obs.unobserve(entries[0].target);
  }

とした場合に、監視は止まったのですが、画像が表示されなくなってしまいました。正しく

 if (!entries[0].isIntersecting){
   return;
 } 
 entries[0].target.classList.add('appear');
 obs.unobserve(entries[0].target);

とした場合には解説の通り動いたのですが、違いを上手く理解できません。この場合の両者の違いはどこにあるのでしょうか。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(6)