I'm very new to the IntersectionObserver API, and I've been experimenting with this code:
let target = document.querySelector('.lazy-load');
let options = {
    root: null,
    rootMargin: '0px',
    threshold: 0
}
let observer = new IntersectionObserver(callback, options);
observer.observe(target);
function callback() {
    console.log('observer triggered.');
}
This seems to work as it should, and callback() is called whenever .lazy-load element enters the viewport, but callback() also fires once when the page is initially loaded, which triggers `console.log('observer triggered.');
Is there a reason for this callback to be triggered when the page loads? Or is there a mistake in how I'm implementing this?
Edit: Altering the code to the below still fires the callback at page load.
let target = document.querySelector('.lazy-load');
let options = {
    root: null,
    rootMargin: '0px',
    threshold: 0
}
let callback = function(entries, observer) {
    entries.forEach(entry => {
        console.log('observer triggered.');
    });
};
let observer = new IntersectionObserver(callback, options);
observer.observe(target);