fix(nav): corrige le menu mobile invisible après fermeture puis agrandissement
This commit is contained in:
@@ -1509,10 +1509,38 @@ input[type="number"]:focus {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-links.mobile-open {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 1rem;
|
||||||
|
border-top: 2px solid var(--or-oki);
|
||||||
|
background: rgba(0, 0, 0, 0.98);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.light-theme .nav-links.mobile-open {
|
||||||
|
background: rgba(255, 248, 231, 0.98);
|
||||||
|
}
|
||||||
|
|
||||||
.nav-container {
|
.nav-container {
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.menu-toggle.open span:nth-child(1) {
|
||||||
|
transform: rotate(45deg) translateY(8px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-toggle.open span:nth-child(2) {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-toggle.open span:nth-child(3) {
|
||||||
|
transform: rotate(-45deg) translateY(-8px);
|
||||||
|
}
|
||||||
|
|
||||||
.theme-toggle {
|
.theme-toggle {
|
||||||
padding: 0.4rem 0.6rem;
|
padding: 0.4rem 0.6rem;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
|
|||||||
+11
-32
@@ -21,13 +21,6 @@
|
|||||||
// Sauvegarder la préférence
|
// Sauvegarder la préférence
|
||||||
localStorage.setItem('oki-theme', newTheme);
|
localStorage.setItem('oki-theme', newTheme);
|
||||||
|
|
||||||
// Mettre à jour le menu mobile si ouvert
|
|
||||||
const navLinks = document.querySelector('.nav-links');
|
|
||||||
if (navLinks && navLinks.style.display === 'flex') {
|
|
||||||
const background = newTheme === 'light' ? 'rgba(255, 248, 231, 0.98)' : 'rgba(0, 0, 0, 0.98)';
|
|
||||||
navLinks.style.background = background;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mettre à jour les styles de la nav en fonction du scroll actuel
|
// Mettre à jour les styles de la nav en fonction du scroll actuel
|
||||||
const nav = document.querySelector('nav');
|
const nav = document.querySelector('nav');
|
||||||
const currentScroll = window.pageYOffset;
|
const currentScroll = window.pageYOffset;
|
||||||
@@ -134,32 +127,18 @@ let menuOpen = false;
|
|||||||
|
|
||||||
menuToggle?.addEventListener('click', () => {
|
menuToggle?.addEventListener('click', () => {
|
||||||
menuOpen = !menuOpen;
|
menuOpen = !menuOpen;
|
||||||
if (menuOpen) {
|
navLinks.classList.toggle('mobile-open', menuOpen);
|
||||||
// Déterminer le fond selon le thème actuel
|
menuToggle.classList.toggle('open', menuOpen);
|
||||||
const isLightTheme = document.documentElement.classList.contains('light-theme');
|
});
|
||||||
const background = isLightTheme ? 'rgba(255, 248, 231, 0.98)' : 'rgba(0, 0, 0, 0.98)';
|
|
||||||
|
|
||||||
navLinks.style.display = 'flex';
|
// Si la fenêtre est agrandie au-delà du breakpoint mobile pendant que le
|
||||||
navLinks.style.position = 'absolute';
|
// menu est ouvert, on réinitialise son état pour éviter qu'il reste caché
|
||||||
navLinks.style.top = '100%';
|
// ou en position absolue quand la nav desktop redevient visible.
|
||||||
navLinks.style.left = '0';
|
window.addEventListener('resize', () => {
|
||||||
navLinks.style.right = '0';
|
if (menuOpen && window.innerWidth > 1100) {
|
||||||
navLinks.style.background = background;
|
menuOpen = false;
|
||||||
navLinks.style.flexDirection = 'column';
|
navLinks.classList.remove('mobile-open');
|
||||||
navLinks.style.padding = '1rem';
|
menuToggle.classList.remove('open');
|
||||||
navLinks.style.borderTop = '2px solid #E8A625';
|
|
||||||
|
|
||||||
// Animate menu toggle
|
|
||||||
menuToggle.children[0].style.transform = 'rotate(45deg) translateY(8px)';
|
|
||||||
menuToggle.children[1].style.opacity = '0';
|
|
||||||
menuToggle.children[2].style.transform = 'rotate(-45deg) translateY(-8px)';
|
|
||||||
} else {
|
|
||||||
navLinks.style.display = 'none';
|
|
||||||
|
|
||||||
// Reset menu toggle
|
|
||||||
menuToggle.children[0].style.transform = '';
|
|
||||||
menuToggle.children[1].style.opacity = '1';
|
|
||||||
menuToggle.children[2].style.transform = '';
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user