Animowana ikona mobilnego menu „Hamburgera”
Tematem jakim zajmę się dzisiaj będzie tzw. Hamburgerowe menu. Jest to menu składające się 3 leżących, równoległych do siebie kresek, przeważnie w ciemnym kolorze.
Obecnie tzw. Hamburgerowe menu stanowi najpopularniejsze rozwiązanie stosowane na responsywnych stronach internetowych. Spotykane jest głównie na urządzeniach mobilnych. W celu ukrycia dużego nie wygodnego menu dostępnego na desktopie.
Na niektórych stronach ikonka ta nie stanowi tylko formy chowanego menu, ale także formę dekoracji. I to właśnie zrobię dzisiaj.
Co znajdziesz w tym wpisie
Od czego zacznę!
Tą charakterystyczną ikonkę (3 linie stąd też porównanie do hamburgera) można wybrać z gotowego zbioru, ale również utworzyć samemu. Co zaprezentuje poniżej wraz z animacją polegającą na zamianie jej w literę „X”. Animacja będzie startować po kliknięciu w symbol rozwijanego menu – czyli za każdym razem gdy ktoś będzie chciał rozwinąć menu.
Jak zbudować prostą ikonkę „Hamburgera”
Na początek zaczniemy od samego kodu HTML, który dzięki odpowiedniej oscylacji w CSS zamieni się w nabierze pożądanego przez nas kształtu.
<div class="container"> <div class="bar1"></div> <div class="bar2"></div> <div class="bar3"></div> </div>
W tej chwili nasza ikonka jest przezroczysta i w żaden sposób nie przypomina tego co jest nam potrzebne. W celu dodania koloru i kształtu przyda się poniższy kod CSS:
.container { display: inline-block; cursor: pointer; } .bar1, .bar2, .bar3 { width: 35px; height: 5px; background-color: #333; margin: 6px 0; transition: 0.4s; }
Teraz dopiero ikonka będzie wyglądała tak jak menu widywane w telefonach:
Jak widać w efekcie końcowym składa się ona z trzech linii – przypominających hamburgera. Teraz więc przechodzimy do następnego kroku.
Tworzenie animacji hamburgera
W celu uruchomienia animacji / zamiany w literę X po kliknięciu musimy dodać odpowiednią funkcję w JavaScript. Dlatego teraz będziemy modyfikować linię:
<div class="container" onclick="myFunction(this)">
Po wprowadzaniu zmiany kod prezentuje się następująco:
<div class="container" onclick="myFunction(this)"> <div class="bar1"></div> <div class="bar2"></div> <div class="bar3"></div> </div>
To na początek nam wystarczy. Jednak nadal musimy utworzyć sam mechanizm oraz zmieniony wygląd ikonki.
Zaczniemy więc od utworzenia wyglądu samej litery „X” z pomocą CSS
.change .bar1 { -webkit-transform: rotate(-45deg) translate(-9px, 6px) ; transform: rotate(-45deg) translate(-9px, 6px) ; } .change .bar2 {opacity: 0;} .change .bar3 { -webkit-transform: rotate(45deg) translate(-8px, -8px) ; transform: rotate(45deg) translate(-8px, -8px) ; }
Do w pełni działającej zamiany brakuje nam jeszcze skryptu, który będzie wszystko uruchamiał
<script> function myFunction(x) { x.classList.toggle("change"); } </script>
A tak prezentuje się gotowy kod w codepen
See the Pen change hamburger menu by Aura (@Julka85) on CodePen.0
Przykłady wykorzystania kodu:
Powyższy kod wykołatałam do stworzenia prostego chowającego się panelu.
Źródło: