Spaces:
Running
Running
| // === ÉléganCiel Immobilier - Scripts communs === | |
| document.addEventListener('DOMContentLoaded', () => { | |
| // Navbar effet de transparence au défilement | |
| const navbar = document.getElementById('navbar'); | |
| if (navbar) { | |
| const updateNavbar = () => { | |
| if (window.scrollY > 50) { | |
| navbar.classList.add('scrolled'); | |
| } else { | |
| navbar.classList.remove('scrolled'); | |
| } | |
| }; | |
| window.addEventListener('scroll', updateNavbar); | |
| updateNavbar(); // initial check | |
| } | |
| // Menu mobile | |
| const mobileMenuBtn = document.getElementById('mobile-menu-btn'); | |
| const mobileMenu = document.getElementById('mobile-menu'); | |
| if (mobileMenuBtn && mobileMenu) { | |
| mobileMenuBtn.addEventListener('click', () => { | |
| mobileMenu.classList.toggle('hidden'); | |
| }); | |
| } | |
| // Animations au scroll (classes reveal-on-scroll) | |
| const revealElements = document.querySelectorAll('.reveal-on-scroll'); | |
| const revealObserver = new IntersectionObserver((entries) => { | |
| entries.forEach(entry => { | |
| if (entry.isIntersecting) { | |
| entry.target.classList.add('revealed'); | |
| revealObserver.unobserve(entry.target); | |
| } | |
| }); | |
| }, { | |
| threshold: 0.15, | |
| rootMargin: '0px 0px -50px 0px' | |
| }); | |
| revealElements.forEach(el => revealObserver.observe(el)); | |
| // Animations pour reveal-element (delayed) | |
| const revealDelayedElements = document.querySelectorAll('.reveal-element'); | |
| const delayObserver = new IntersectionObserver((entries) => { | |
| entries.forEach(entry => { | |
| if (entry.isIntersecting) { | |
| entry.target.classList.add('revealed'); | |
| delayObserver.unobserve(entry.target); | |
| } | |
| }); | |
| }, { | |
| threshold: 0.2 | |
| }); | |
| revealDelayedElements.forEach(el => delayObserver.observe(el)); | |
| // === Chatbot === | |
| const chatbotToggle = document.getElementById('chatbot-toggle'); | |
| const chatbotWindow = document.getElementById('chatbot-window'); | |
| const chatbotClose = document.getElementById('chatbot-close'); | |
| if (chatbotToggle && chatbotWindow) { | |
| chatbotToggle.addEventListener('click', () => { | |
| chatbotWindow.classList.toggle('hidden'); | |
| chatbotWindow.classList.toggle('open'); | |
| }); | |
| if (chatbotClose) { | |
| chatbotClose.addEventListener('click', () => { | |
| chatbotWindow.classList.add('hidden'); | |
| chatbotWindow.classList.remove('open'); | |
| }); | |
| } | |
| } | |
| }); |