D'accord, j'essaie de concevoir une version mobile de mon site et je suis coincé dans mon menu.
Fondamentalement, pour le moment, j'ai un simple onClick en cours d'exécution sur la page, donc si l'utilisateur décide qu'il ne veut pas afficher, cliquez sur ce qui est dans le menu, alors il peut cliquer sur la page et le menu disparaît.
Mais ce que je veux vraiment, c'est un moyen d'utiliser le bouton de retour du navigateur pour revenir du menu. Je suppose que cela prend une sorte d'événement ou de réglage, mais je suis perdu.
Je suis un débutant, alors soyez gentil, j'espère que la communauté pourra m'aider un peu pour savoir par où commencer.
Ma principale question est de savoir comment utiliser le bouton de retour sur un navigateur dans mon HTML ou JavaScript, toute idée sur la façon de procéder serait grandement appréciée.
Mise à jour de la version JS uniquement: http://jsfiddle.net/0uk0g0qq/4/ (fonctionne partout) l' :target
implémentation est boguée dans ie. donc le précédent ne fonctionnait pas. les changements de hachage n'affectent le css que lorsque l'utilisateur fait directement quelque chose sur la page, cliquez sur le bouton qui change le hachage et, malheureusement, le bouton de retour n'est pas considéré comme faisant partie de la page
Voici tout le javascript dont vous avez besoin:
var menu = document.getElementById('menu');
window.addEventListener('hashchange', function(e) {
if (location.hash != "#menu") {
menu.style.display = "none";
} else if (location.hash == "#menu") {
menu.style.display = "block";
}
});
Version Css uniquement :::
Vous pouvez le faire en utilisant uniquement css. Il est temps que vous vous familiarisiez avec le :target
sélecteur.
Il vous permet d'appliquer un style à tout élément de hachage d'url et à l'identifiant de l'élément sur la page.
Démo: http://jsfiddle.net/0uk0g0qq/1
Donc, je masque le menu par défaut, mais s'il correspond, j'affiche le menu. Étant donné que les hastags dans l'url affectent l'historique du navigateur, il accomplit ce que vous avez demandé.
C'était plutôt génial la première fois que je l'ai appris.
#menu:target {
display: block;
}
le code entier:
body {
background-color: cornsilk;
}
.cont {
width: 500px;
margin: auto;
}
#menu {
display: none;
position: absolute;
top: 0; bottom: 0; left: 0; right: 0;
height: 100%;
background-color: rgba(0,0,0,.3);
margin: auto;
}
#menu > ul {
width: 200px;
list-style-type: none;
background-color: #fff;
margin: auto;
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%,-50%);
}
#menu > ul li {
padding: 20px 10px;
}
#menu:target {
display: block;
}
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots