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.

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.

DEMO

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" >

Po wprowadzaniu zmiany kod prezentuje się następująco:

<div class="container" >

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

Gotowy skrypt

Przykłady wykorzystania kodu:

Powyższy kod wykołatałam do stworzenia prostego chowającego się panelu.

Źródło:

http://www.w3schools.com/howto/howto_css_menu_icon.asp

Animowana ikona mobilnego menu „Hamburgera”
aurelia

Recent Posts

Mity o marce osobistej, które warto znać

Jak w przypadku wielu różnych tematów tak i w przypadku marki osobistej pojawiło się przez…

1 tydzień ago

Jakie zawody zastąpi AI? Czy mamy się czego bać?

Choć zabrzmi to może nieco dziwnie to wprowadzenie AI (sztucznej inteligencji) do naszego życia było…

2 tygodnie ago

Widmo Brockenu – co to jest?

Widmo Brockenu to dość rzadko spotykane zjawisko optyczne, najczęściej widywane w wysokich partiach gór. Można…

2 miesiące ago

Relikwie: jak zdobywano, sprzedawano i podrabiano święte przedmioty

Zacznę może od tego, że relikwia, relikwii nie równa. Wiem jeśli nie ma się pojęcia…

2 miesiące ago

Poznaj 6 powodów, dla których warto posiadać logo

Logo stanowi jeden z ważniejszych elementów tożsamości wizualnej praktycznie każdej firmy, marki czy projektu. Logo…

2 miesiące ago

Dlaczego firmy mylą markę osobistą z firmową

Budując własną markę osobistą lub chcąc ją zbudować trzeba liczyć się z wieloma wyzwaniami. Jednym…

2 miesiące ago
All Rights ReservedView Non-AMP Version
X

Headline

You can control the ways in which we improve and personalize your experience. Please choose whether you wish to allow the following:

Privacy Settings