Рубрики
Без рубрики

Анимированное меню гамбургера

Введение Анимированные навигационные бары почти стали необходимостью, когда дело доходит до … Tagged с JavaScript, HTML, CSS.

Анимированные навигационные бары почти стали необходимостью, когда речь заходит о контенте, который вы предоставляете конечным пользователям. Теперь я знаю, что мы все немного предвзяты в этом для обеих сторон, но на мгновение обнажены со мной … Мы все видели меню гамбургера. Когда вы нажимаете на один, он либо вообще не двигается, либо это быстрый переход на жир X без перехода вообще. Я имею в виду … что дает!? Можем ли мы добавить немного, вы знаете, вау?

Давайте рассмотрим один способ! Проверьте мой по этой ссылке Анкет Это мое текущее портфолио, я в процессе разработки Анкет Я собираюсь научить вас, как оживить меню гамбургера.

Также вот Codepen Чтобы следовать. Я до сих пор предлагаю написать это, хотя, когда вы читаете!

Примечание: я не преподаю раскрывающуюся часть меню … Но, если вы оставите комментарий, выражающий интерес … Я рассмотрю вопрос о написании блога, посвященного этой функциональности. 😉

Первое, что вы собираетесь сделать, это создать три девчонка . В идеале вы хотите эти divs идти в твоем NAVBAR , но мы просто сосредоточимся на создании этой работы. Вам понадобится index.html файл. Назовите это как хотите.

Далее поместите divs Внутри с предоставленным шаблоном и занятиями:





    
    
    Document



  



Как видите, мы изначально пометили каждый Div с классом один , два и Три Анкет Каждый из этих DOV будет представлять один из трех баров в меню гамбургеров. Теперь давайте добавим немного стиля, чтобы сделать все видимыми.

Создать index.css Подайте и свяжите его в своем index.html файл. Как только вы это сделаете, примените этот стиль:

html {
  background-color: black;
}

.menu {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100vw;
}

.one, .two, .three {
        width: 45px;
        height: 3px;
        margin-bottom: 8px;
        background-color: aqua;
        border-radius: 20px;
        box-shadow: 0 0 5px aqua;
 }

Идеально, теперь у вас должен быть черный фон со светящимся меню гамбургера. 😄 пока ничего не работает, но теперь вы можете, по крайней мере, увидеть все. Не стесняйтесь играть с цветами, если хотите сделать это своим. Если до этого момента все прошло хорошо, мы можем перейти к анимационной части.

Мы хотим, чтобы наши пользователи знали, что меню гамбургера можно щелкнуть! Лучший способ сделать это – это изменить курсор, когда он зависает над ним. В вашем файле CSS примените этот новый класс недвижимости:

.menu:hover {
    cursor: pointer
}

Достаточно просто, верно?

Далее мы собираемся создать некоторые свойства CSS для классов, которых еще не существует – .активный Анкет Они будут существовать, как только мы добавим события Click, но сейчас … просто поверьте мне в этом. Я не разочаровываю!

Добавьте их в свой файл CSS:

.one.active {
  transform: translate(0, 14px) rotate(45deg);
}

.two.active {
  background-color: transparent;
  box-shadow: none;
  transform: translateX(-55px);
}

.three.active {
  transform: translate(0, -8px) rotate(-45deg);
}

Теперь мы собираемся заставить это работать! Создать index.js Подайте и свяжите его в своем index.html файл. Для этой конкретной анимации не требуется много кода. Поместите это в свой index.js :

const menu = document.querySelector(".menu");

menu.addEventListener("click", () => {
  const activeElements = document.querySelectorAll(".active-element");
    for(let i = 0; i < activeElements.length; i++) {
        activeElements[i].classList.toggle("active");
    }
});

Попробуйте нажать на меню гамбургера.

Хузза, это работает!

К сожалению, когда люди останавливаются. Существует очень быстрый анимационный переключатель, но в основном это всего лишь две кадры, переключающиеся вперед и назад. Это самое разочаровывающее для меня, так как анимация жидкости фиксируется буквально, с одним собственностью …

Переход: XXXMS

В этом случае вам просто нужно добавить Переход: 300 мс к .one, .two, .three {} в вашем файле CSS.

Этот последний список свойств выглядит следующим образом:

.one, .two, .three {
    transition: 300ms;
    width: 45px;
    height: 3px;
    margin-bottom: 8px;
    background-color: aqua;
    border-radius: 20px;
    box-shadow: 0 0 5px aqua;
}

Проверьте это! Вы будете поражены тем, насколько это было легко.

Оказывается, анимация на самом деле не так уж и сложна. Это не значит, что анимация не может стать сложной, но я чувствую, что некоторые начинающие разработчики дают ему плохой повторение. Как бы то ни было, я надеюсь, что это окажется полезным для всех вас. Ваше здоровье!

Оригинал: “https://dev.to/matthewpalmer9/animated-hamburger-menu-20jn”