76 lines
2.5 KiB
JavaScript
76 lines
2.5 KiB
JavaScript
document.addEventListener("DOMContentLoaded", () => {
|
|
// Navegación móvil
|
|
const hamburger = document.querySelector(".hamburger-menu");
|
|
const mobileMenu = document.querySelector(".mobile-menu");
|
|
const menuOverlay = document.querySelector(".menu-overlay");
|
|
|
|
if (hamburger && mobileMenu && menuOverlay) {
|
|
hamburger.addEventListener("click", () => {
|
|
hamburger.classList.toggle("active");
|
|
mobileMenu.classList.toggle("active");
|
|
menuOverlay.classList.toggle("active");
|
|
document.body.style.overflow = mobileMenu.classList.contains(
|
|
"active",
|
|
)
|
|
? "hidden"
|
|
: "";
|
|
});
|
|
|
|
menuOverlay.addEventListener("click", () => {
|
|
hamburger.classList.remove("active");
|
|
mobileMenu.classList.remove("active");
|
|
menuOverlay.classList.remove("active");
|
|
document.body.style.overflow = "";
|
|
});
|
|
}
|
|
|
|
// Tema claro/oscuro
|
|
const themeToggle = document.querySelector(".theme-toggle");
|
|
if (themeToggle) {
|
|
themeToggle.addEventListener("click", () => {
|
|
document.body.classList.toggle("light-mode");
|
|
localStorage.setItem(
|
|
"theme",
|
|
document.body.classList.contains("light-mode")
|
|
? "light"
|
|
: "dark",
|
|
);
|
|
});
|
|
|
|
const savedTheme = localStorage.getItem("theme");
|
|
if (savedTheme === "light") {
|
|
document.body.classList.add("light-mode");
|
|
}
|
|
}
|
|
|
|
// Chatbot
|
|
const chatbotToggle = document.querySelector(".chatbot-toggle");
|
|
const chatbotContainer = document.querySelector(".chatbot-container");
|
|
const botClose = document.querySelector(".chatbot-close");
|
|
|
|
if (chatbotToggle && chatbotContainer) {
|
|
chatbotToggle.addEventListener("click", () => {
|
|
chatbotContainer.classList.toggle("active");
|
|
});
|
|
|
|
if (botClose) {
|
|
botClose.addEventListener("click", () => {
|
|
chatbotContainer.classList.remove("active");
|
|
});
|
|
}
|
|
}
|
|
|
|
// Preloader
|
|
window.addEventListener("load", () => {
|
|
const preloader = document.getElementById("preloader");
|
|
if (preloader) {
|
|
setTimeout(() => {
|
|
preloader.classList.add("loaded");
|
|
setTimeout(() => {
|
|
preloader.style.display = "none";
|
|
}, 600);
|
|
}, 1500);
|
|
}
|
|
});
|
|
});
|