|
|
// Create a function that will handle any intersection between some elements and the viewport.
|
|
|
const handleFooterIntersection = function (entries) {
|
|
|
// Loop through all the observed elements
|
|
|
entries.forEach(entry => { // Check if the element is intersecting the viewport
|
|
|
if (entry.isIntersecting) {
|
|
|
msgConsole('IntersectionObserver','The footer is visible in the viewport');
|
|
|
if (typeof footerIsNowVisible === 'function') footerIsNowVisible(entry);
|
|
|
} else {
|
|
|
msgConsole('IntersectionObserver','The footer is invisible in the viewport');
|
|
|
if (typeof footerIsNowInvisible === 'function') footerIsNowInvisible(entry);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
const section_footer = document.querySelector("#footer");
|
|
|
if (section_footer) {
|
|
|
const footerObserver = new IntersectionObserver(handleFooterIntersection);
|
|
|
if (footerObserver) footerObserver.observe(section_footer);
|
|
|
} else myLog('No footer to observe');
|