// Configurationa
const triggerClassName = 'footer-in-view';
const triggerElementSelector = 'footer';
const targetIds = [];
const targetClasses = ['mhcookie-preferences-toggle'];

// Observer
const observer = new MutationObserver((mutations) => {
  mutations.forEach((mutation) => {
    if (mutation.type === 'attributes') {
      const trigger = mutation.target;
      console.log('Class change detected:', trigger.classList);
      
      if (trigger.classList.contains(triggerClassName)) {
        console.log('Footer in view - hiding targets');
        targetIds.forEach(id => {
          const el = document.getElementById(id);
          el?.classList.remove('gs-show');
          el?.classList.add('gs-hide');
        });
        targetClasses.forEach(className => {
          const elements = document.getElementsByClassName(className);
          console.log('Found elements:', elements.length);
          Array.from(elements).forEach(el => {
            el.classList.remove('gs-show');
            el.classList.add('gs-hide');
          });
        });
      } else {
        console.log('Footer out of view - showing targets');
        targetIds.forEach(id => {
          const el = document.getElementById(id);
          el?.classList.remove('gs-hide');
          el?.classList.add('gs-show');
        });
        targetClasses.forEach(className => {
          const elements = document.getElementsByClassName(className);
          Array.from(elements).forEach(el => {
            el.classList.remove('gs-hide');
            el.classList.add('gs-show');
          });
        });
      }
    }
  });
});

// Initialize
document.addEventListener('DOMContentLoaded', function() {
  console.log('Initializing...');
  
  // Initialize target elements with gs-show
  targetIds.forEach(id => {
    document.getElementById(id)?.classList.add('gs-show');
  });
  targetClasses.forEach(className => {
    const elements = document.getElementsByClassName(className);
    console.log('Initializing class:', className, 'found:', elements.length);
    Array.from(elements).forEach(el => el.classList.add('gs-show'));
  });
  
  // Start observing
  const triggerElement = document.querySelector(triggerElementSelector);
  observer.observe(triggerElement, { 
    attributes: true
  });
});
JavaScript

This website uses cookies to enhance your browsing experience and ensure the site functions properly. By continuing to use this site, you acknowledge and accept our use of cookies.

Accept All Accept Required Only