В современной разработке сайтов и веб-приложений всегда возникает необходимость модификации простого меню в мобильное, чтобы сократить занимаемое на экране место. Как правило, для этой задачи используется меню с бургер-переключателем. Я использую готовый анимированный burger-переключатель, чтобы не делать одну и ту же работу на каждом проекте (если иное не указано в техническом задании).
Начнем с создания самого элемента переключателя и контейнера с меню:
Подключим следующие css-стили:
<style>
.burger-toggler{
border-radius: 50px;
width: 45px;
height: 45px;
border: 2px solid #f25b83;
position: absolute;
top: 15px;
right: 15px;
margin: 0;
z-index: 100;
cursor: pointer;
}
.burger-toggler > span {
position: relative;
display: inline-block;
text-align: left;
width: 25px;
height: 3px;
border-radius: 3px;
background: #f25b83;
margin-top: 21px;
margin-left: 10px;
-webkit-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
}
.burger-toggler > span:before, .burger-toggler > span:after {
position: absolute;
background: #f25b83;
content: '';
width: 25px;
height: 3px;
border-radius: 3px;
-webkit-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
}
.burger-toggler > span:before {
top: -7px;
}
.burger-toggler > span:after {
top: 7px;
}
.burger-toggler.active > span {
background: transparent !important;
}
.burger-toggler.active > span:before {
-webkit-transform: rotate(45deg) translate(5px, 5px);
-ms-transform: rotate(45deg) translate(5px, 5px);
transform: rotate(45deg) translate(5px, 5px);
}
.burger-toggler.active > span:after {
-webkit-transform: rotate(-45deg) translate(5px, -5px);
-ms-transform: rotate(-45deg) translate(5px, -5px);
transform: rotate(-45deg) translate(5px, -5px);
}
.menu-container{
display: none;
}
.menu-container.active{
display: block;
}
</style>
А теперь напишем Javascript-код, который будет описывать логику работы:
<script>
var burgerToggler = document.getElementById('burger-toggler');
var menuContainer = document.getElementById('menu-container');
burgerToggler.addEventListener('click', function(event){
this.classList.toggle('active');
menuContainer.classList.toggle('active');
});
</script>
При клике на бургер, мы переключаем класс active у него самого и у контейнера с меню, чтобы показывать и скрывать его содержимое.
« список статей