console
let container = document.querySelector(".container");
let items = document.querySelectorAll(".item");
console.log(items[0].dataset.trace,'dataset',items[0].getAttribute('data-trace'))
let options = {
root: container
}
let IO = new IntersectionObserver(IOCallback, options);
items.forEach((item) => {
IO.observe(item)
})
function IOCallback(entries, observer) {
entries.forEach(item => {
if (item.isIntersecting) {
console.log(item,item.target.dataset.trace,'item')
IO.unobserve(item.target)
}
});
}
<div class="container">
<div class="item" data-trace="item1">item1</div>
<div class="item" data-trace="item2">item2</div>
<div class="item" data-trace="item3">item3</div>
<div class="item" data-trace="item4">item4</div>
<div class="item" data-trace="item5">item5</div>
</div>
*{
padding:0;
margin:0;
box-sizing: border-box;
}
.container{
background:red;
height:500px;
width:100vw;
overflow:auto;
}
.item{
height:500px;
width:100%;
background-color:blue;
margin-top:10px;
}