Bonjour � tous !
Mon menu fonctionne bien ! mais je voudrais qu'il joue � cache-cache.
Cela dit, il joue d�j� bien � cache-cache, mais je voudrais trouver une autre mani�re de faire : plus propre !
Donc voici:
un header avec
- un bloc div qui contient un titre et une ic�ne hamburger , le tout plac� � gauche
- un bloc div avec le titre, au centre
- un dernier bloc avec des liens, � droite
Somme toute, un header classique !
ce header est masqu� par l'image Hero ! et il appara�t lorsqu'on a scroll� suffisamment pour sortir du Hero: lorsque l'image hero a disparut de l'�cran !
Je m'en sort tr�s simplement avec les z-index qui vont bien sur la classe logo !
Ceci fonctionne pour toutes les tailles d'�cran !
Code:
1
2
3
4
5
6
7
8
9
10 <header> <div class="logo d-flex justify-content-between align-items-center"> <div class="menuHamburger2"> <h2>Menu</h2> <div>icône hamburger en svg </div> <div class="truc">autre élément du header</div> <div class="autreTruc">dernier élément du header</div> </div> </header>
css de la classe logo :
Code:
1
2
3
4 position: fixed; top: 0; z-index: 30;
Rajoutons la difficult�, pour une r�solution de 1200px et plus :
le bloc div avec titre et ic�ne hamburger appara�t en haut � gauche (par-dessus l'image hero donc), mais pas tout le header, juste cette partie du header !
Et bien s�r , il reste en haut lorsqu'on scrolle. Mais aussi, il r�appara�t lorsqu'on a pass� le hero !!!
J'ai fait le faignant, parce que je sais bien faire �a!
J'ai dupliqu� le bloc div en question, avec un autre nom de classe et le z-index qu'il faut (et des medias-queries �videmment: display: none pour la classe menuHamburger2 tant qu'on est pas en 1200Px)
Code:
1
2
3
4
5
6
7
8
9
10
11 <header> <div class="menuHamburger1">duplication du div menuHamburger2</div> <div class="logo d-flex justify-content-between align-items-center"> <div class="menuHamburger2"> <h2>Menu</h2> <div>icône hamburger en svg </div> <div class="truc">autre élément du header</div> <div class="autreTruc">dernier élément du header</div> </div> </header
Et si on clique dessus: un menu appara�t ( c'est le but d'un menu !)
Et avec ma m�thode: en javascript, il va falloir que je fasse un addEventListener sur ces deux �l�ments !!!!
Pour l'instant, �a fonctionne bien comme �a, mais si je pouvais ne pas dupliquer du code, �a serait plus correct !
La solution serait du bon javascript: pour l'instant un sacr� casse-t�te !
La seule id�e que j'ai pour le moment:
en-dessous de 1200px on fait comme au d�but ! On ne change rien �a marche d�j� !
� partit de 1200px, plus de menuHamburger2 mais un menuHamburger1: on sort le menuHambuger de la div(classe logo)
Puis, lorsqu'on � scroll� de plus loin que la hauteur du menuHamburger, on le remet dans la div de classe logo !
Il faut surveiller le scroll, et je ne sais pas comment faire �a !