Animation nav menu slide latérale : slide retour compliqué
Résolu/Fermé
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
-
31 déc. 2021 à 19:38
rdbn Messages postés 95 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 26 décembre 2022 - 6 janv. 2022 à 17:05
rdbn Messages postés 95 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 26 décembre 2022 - 6 janv. 2022 à 17:05
A voir également:
- Animation nav menu slide latérale : slide retour compliqué
- Menu déroulant excel - Guide
- Windows 11 menu démarrer classique - Guide
- Nav privée - Guide
- Canon quick menu - Télécharger - Utilitaires
- Réinitialiser menu démarrer windows 10 - Guide
2 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
4 janv. 2022 à 19:06
4 janv. 2022 à 19:06
Bonjour,
Par défaut au chargement de la page, chaque élément de menu possède sa propre classe pour laquelle l'opacité est définie à 0 :
(la 4ème ligne "opacity: .6s ease-in-out;" n'est pas correcte, on ne peut pas mélanger opacité et transition comme cela)
A l'ouverture du menu, la classe open est appliquée sur chaque élément de menu, celle-ci surcharge l'opacité à 1 afin de faire apparaitre les éléments :
Par contre à la fermeture du menu, la classe close remplace la classe open mais l'opacité reste à 1 avec cette classe :
Il faut donc repasser l'opacité à 0 lorsque la classe close est appliquée pour masquer les éléments.
Tu devrais vraiment factoriser ton code en utilisant une classe commune pour tous les éléments de menu car tu as beaucoup de code dupliqués, ce qui t'oblige à modifier ton code à plusieurs endroits si tu veux changer le style des éléments ou ajouter d'autres éléments.
Tu peux par exemple ajouter sur chaque élément de menu une classe nommée "menu-item" ou un autre nom de ton choix, puis appliquer le style commun à tous les éléments dans cette classe. Tu peux en plus conserver la classe unique pour chaque élément (home, about, contact, ...) si besoin de surcharger le style d'un menu différemment des autres.
Un début de factorisation possible pour les éléments de menu (ligne 63 pour le css avec le code factorisé mis en commentaire) : https://jsfiddle.net/er5t7m3j/
Par défaut au chargement de la page, chaque élément de menu possède sa propre classe pour laquelle l'opacité est définie à 0 :
nav .container .list-menu ul li.home { transform: translateX(650px); opacity: 0; transition: transform .6s ease-in-out; opacity: .6s ease-in-out; }
(la 4ème ligne "opacity: .6s ease-in-out;" n'est pas correcte, on ne peut pas mélanger opacité et transition comme cela)
A l'ouverture du menu, la classe open est appliquée sur chaque élément de menu, celle-ci surcharge l'opacité à 1 afin de faire apparaitre les éléments :
nav .container .list-menu ul li.home.open { transform: translateX(0px); opacity: 1; }
Par contre à la fermeture du menu, la classe close remplace la classe open mais l'opacité reste à 1 avec cette classe :
nav .container .list-menu ul li.home.close { transform: translateX(650px); opacity: 1; transition: transform .9s ease-in-out; opacity: .6s ease-in-out; }
Il faut donc repasser l'opacité à 0 lorsque la classe close est appliquée pour masquer les éléments.
Tu devrais vraiment factoriser ton code en utilisant une classe commune pour tous les éléments de menu car tu as beaucoup de code dupliqués, ce qui t'oblige à modifier ton code à plusieurs endroits si tu veux changer le style des éléments ou ajouter d'autres éléments.
Tu peux par exemple ajouter sur chaque élément de menu une classe nommée "menu-item" ou un autre nom de ton choix, puis appliquer le style commun à tous les éléments dans cette classe. Tu peux en plus conserver la classe unique pour chaque élément (home, about, contact, ...) si besoin de surcharger le style d'un menu différemment des autres.
Un début de factorisation possible pour les éléments de menu (ligne 63 pour le css avec le code factorisé mis en commentaire) : https://jsfiddle.net/er5t7m3j/
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
6 janv. 2022 à 17:05
6 janv. 2022 à 17:05
Bonjour, merci pour ton aide. Le faite de factorisé grâce à une classe commune aide énormément à visualisé proprement le code et réduire le code en quelque ligne. Et encore merci pour l'exemple sur jsfiddle.