ブラウザのコンソールを開き、[開始]ボタンを押してください。
緑の四角が画面(viewport)から出た時と、入ってきた時 (厳密にはオプションで指定した [0, 0.5, 1] の3つのタイミング) にコールバックが呼ばれ、intersectionRatio(要素がどれくらい見えているか) の値が出力されます。
JavaScript コード
window.addEventListener('load', () => {
const elm = document.querySelector('#box1');
document.addEventListener('click', () => {
(new TimelineMax())
.to(elm, 1, { x: 400, backgroundColor: 'green', opacity: 1 })
.to(elm, 2, { y: -400, backgroundColor: 'green', opacity: 1 })
.to(elm, 1, { x: 0, backgroundColor: 'green', opacity: 1 })
.to(elm, 2, { y: 0, backgroundColor: 'green', opacity: 1 });
});
const io = new IntersectionObserver(
entries => {
//console.log(entries);
console.log(entries[0].intersectionRatio);
},
{
threshold: [0, 0.5, 1]
}
);
// Start observing an element
io.observe(elm);
});
参考