Salut !
J'ai un menu bandeau en haut qui en mode mobile est réduit à un menu hamburger.
Le changement se fait à 767px afin que sur un grand mobile on puisse avoir la version desktop en mode paysage.
En mode desktop, les items du menu bandeau sont visibles et le logo hamburger masqué :
En mode mobile c'est l'inverse :
L'affichage des rubriques en mode mobile est géré par un javascript :
Ca fonctionne mais y'a un petit problème :
En mode mobile, si le menu hamburger a été utilisé au moins une fois (javascript) et est fermé, la rotation de l'écran ne réactive pas la visibilité des items du bandeau. (Sans aucune utilisation du menu hamburger ça marche.)
Ca semble donc venir du style.display = 'none' du javascript qui ne semble pas pourquoi être outrepassé par le CSS display: table;...
Pourquoi ? Que faire ?
Merci d'avance pour votre aide
J'ai un menu bandeau en haut qui en mode mobile est réduit à un menu hamburger.
Le changement se fait à 767px afin que sur un grand mobile on puisse avoir la version desktop en mode paysage.
En mode desktop, les items du menu bandeau sont visibles et le logo hamburger masqué :
.pagemenu, .rubrique { display: table; }
#menumobile { display: none; }
En mode mobile c'est l'inverse :
@media (max-width:767px) {
.pagemenu, .rubrique { display: none; }
#menumobile { display: table; }
}
L'affichage des rubriques en mode mobile est géré par un javascript :
function togglemenu() {
const x = document.querySelectorAll("div.rubrique, div.pagemenu");
var y = document.getElementById('menumobile').children[0];
for (var i= 0; i<x.length; i++) {
if ( x[i].style.display === 'table' )
{ x[i].style.display = 'none'; y.innerHTML = '≡'; }
else
{ x[i].style.display = 'table'; y.innerHTML = '×'; }
}
}
Ca fonctionne mais y'a un petit problème :
En mode mobile, si le menu hamburger a été utilisé au moins une fois (javascript) et est fermé, la rotation de l'écran ne réactive pas la visibilité des items du bandeau. (Sans aucune utilisation du menu hamburger ça marche.)
Ca semble donc venir du style.display = 'none' du javascript qui ne semble pas pourquoi être outrepassé par le CSS display: table;...
Pourquoi ? Que faire ?
Merci d'avance pour votre aide