回答編集履歴

1

コメントを受けて追記

2021/04/06 04:09

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36960

test CHANGED
@@ -29,3 +29,71 @@
29
29
 
30
30
 
31
31
  IntersectionObserverに登録された時に発火する仕様です。
32
+
33
+
34
+
35
+ ---
36
+
37
+
38
+
39
+ # コメントを受けて追記
40
+
41
+
42
+
43
+ s2が発火するかどうかについては、ユーザーの操作次第になりますが。
44
+
45
+
46
+
47
+ ```js
48
+
49
+ window.onload = function () {
50
+
51
+
52
+
53
+ // document.querySelector("#aaa")が取得できないので移動
54
+
55
+ let options = {
56
+
57
+ root: document.querySelector("#aaa"),
58
+
59
+ threshold: 1
60
+
61
+ }
62
+
63
+
64
+
65
+ const observer = new IntersectionObserver((entries) => {
66
+
67
+ if (entries[0].intersectionRatio != 1) { // 条件式変更
68
+
69
+ return;
70
+
71
+ } else {
72
+
73
+ alert(entries[0].target.id);
74
+
75
+ }
76
+
77
+ }, options);
78
+
79
+
80
+
81
+ // 1pxだけスクロールする(ロード時対策)
82
+
83
+ observer.root.scrollTo(0, 1);
84
+
85
+
86
+
87
+ s = document.querySelectorAll('.section');
88
+
89
+ sl = s.length;
90
+
91
+ for (i = 0; i < sl; i++) {
92
+
93
+ observer.observe(s[i]);
94
+
95
+ }
96
+
97
+ }
98
+
99
+ ```