Javascript の IntersectionObserver について学習しようとしています。
いくつかの記事とドキュメントを読んだ後、自分で試すために CodePen を作成することにしました: IntersectionObserver CodePen
トップメッセージに「見えるブロック」を表示させたい。CodePen は「ほぼ」機能しますが、完全には機能しません。正しいブロックが表示される場合と表示されない場合があります。
これが私のJSです:
let message = document.querySelector('#block-number');
// INTERSECTION OBSERVER STUFF
const io = new IntersectionObserver(entries => {
if(entries[0].isIntersecting) {
message.innerHTML = entries[0].target.textContent;
}
}, {
threshold: [.25]
});
// ELEMENTS TO OBSERVE
const blk1 = document.querySelector('#block1');
const blk2 = document.querySelector('#block2');
const blk3 = document.querySelector('#block3');
const blk4 = document.querySelector('#block4');
const blk5 = document.querySelector('#block5');
const blk6 = document.querySelector('#block6');
// START OBSERVING ELEMENTS
io.observe(blk1);
io.observe(blk2);
io.observe(blk3);
io.observe(blk4);
io.observe(blk5);
io.observe(blk6);
私が間違っていることについてのアイデアはありますか?
私も(運がなければ)次のようなことを試しました:
if(entries[0].intersectionRatio !== 0)
ありがとうございました!