noahs_builder_theme-1.0.7/src/js/header.js

src/js/header.js
document.addEventListener("DOMContentLoaded", function () {
  function updateHeaderHeight() {
    const header = document.querySelector(".noahs-theme--header");
    const headerEmpty = document.querySelector(".noahs-header-empty");
    const toolbar = document.querySelector("#toolbar-administration");

    if (header) {
      // Ajustar top del header si existe el toolbar de administración.
      if (toolbar) {
        const toolbarHeight = 79;
        header.style.top = `${toolbarHeight}px`;
      }

      // Ajustar el espacio vacío bajo el header.
      if (headerEmpty) {
        headerEmpty.style.height = `${header.offsetHeight}px`;
      }
    }
  }

  // Función para alternar clase al hacer scroll.
  function handleScroll() {
    const header = document.querySelector(".noahs-theme--header");
    if (!header) return;

    const scrollY = window.scrollY || window.pageYOffset;
    const scrollThreshold = 50; // píxeles para activar el sticky (ajusta a gusto)

    if (scrollY > scrollThreshold) {
      header.classList.add("is-sticky");
    } else {
      header.classList.remove("is-sticky");
    }
  }

  // Esperar hasta que el header esté disponible.
  const checkHeader = setInterval(() => {
    const header = document.querySelector(".noahs-theme--header");

    if (header) {
      clearInterval(checkHeader);

      // Ajustar tamaño y posición inicialmente.
      updateHeaderHeight();

      // Observar cambios en el tamaño del header.
      const resizeObserver = new ResizeObserver(updateHeaderHeight);
      resizeObserver.observe(header);

      // Escuchar cambios en el tamaño de la ventana.
      window.addEventListener("resize", updateHeaderHeight);

      // Añadir el listener de scroll.
      window.addEventListener("scroll", handleScroll);

      // Ejecutar una vez para estado inicial.
      handleScroll();
    }
  }, 100);
});

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc