Изучаю JS. Написал вариант мобильного меню, раскритикуйте его, пожалуйста: достойно ли оно существования? Можно ли так делать мобильные меню, или у него есть жуткие недостатки?
Codepen посмотреть:
https://codepen.io/ovvivus/pen/wpompr
Логика простая:
1. Меню с position: fixed скрыто за пределы экрана (right: -320px);
2. При клике на кнопку "Меню", меню выезжает сбоку (right: 0);
3. Появляется затемнённый оверлей;
4. Для body устанавливается overflow: hidden (убирается скролл);
5. При нажатии ESC или клике по оверлею, меню снова прячется на right: -320px, и всё встаёт на свои места.
JS:$('.Header-menu-button').click(function() {
// появление меню
// создание overlay
$('body').append('<div class="overlay"></div>');
// появление меню
$('#Mobile-menu').addClass('open');
// отключение scroll у страницы
$('body').css('overflow-y', 'hidden');
// Закрытие при нажатии Escape
$(document).keyup(function(event){
if (event.keyCode == 27) {
// Удаление overlay
$('.overlay').remove();
// скрытие меню
$('#Mobile-menu').removeClass('open');
// возвращение скролла
$('body').css('overflow-y', 'auto');
}
});
// закрытие при клике по overlay
$('.overlay').click(function() {
$('body').css('overflow-y', 'auto');
$('#Mobile-menu').removeClass('open');
$('.overlay').remove();
});
});