vueloenglobo.mx/public/assets/js/preguntas-frecuentes.js

63 lines
2.0 KiB
JavaScript

(function () {
function initAccordion() {
var accordions = document.querySelectorAll(".faq-accordion");
if (!accordions.length) return;
// Función para cerrar todos los acordeones
function closeAllAccordions(exceptIndex = -1) {
accordions.forEach(function (accordion, index) {
if (
index !== exceptIndex &&
accordion.classList.contains("active")
) {
accordion.classList.remove("active");
}
});
}
// Agregar evento de click a cada acordeón
accordions.forEach(function (accordion, index) {
var title = accordion.querySelector(".faq-accordion-title");
title.addEventListener("click", function (e) {
e.preventDefault();
var isActive = accordion.classList.contains("active");
if (!isActive) {
closeAllAccordions(index);
accordion.classList.add("active");
} else {
accordion.classList.remove("active");
}
});
// Scroll Reveal
var observer = new IntersectionObserver(
function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
entry.target.classList.add("revealed");
observer.unobserve(entry.target);
}
});
},
{
threshold: 0.1,
rootMargin: "50px",
},
);
observer.observe(accordion);
});
}
// Inicializar cuando el DOM esté listo
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initAccordion);
} else {
initAccordion();
}
})();