Здравствуйте, сначала сделал меню на toggle, но появилось проблема что в Сафари не блокируется прокрутка, по этому сделал так
$('.menu-to-btn').click(function(){
var posTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
var menu = false
if (this.menu != 0) {
$("body").addClass('hiddenOverflow');
$( "body" ).css({top: '-' + posTop});
$( "body" ).css({position: 'fixed'});
$("#menu-slide").show();
$(".b1").addClass("is-active");
$(".b2").addClass("is-active");
this.menu = !this.menu;
}
else if (this.menu != 1) {
$("#menu-slide").hide();
$(".b1").removeClass("is-active");
$(".b2").removeClass("is-active");
$( "body" ).removeAttr('style');
$("body").removeClass('hiddenOverflow');
this.menu = !this.menu;
}
else {
console.log('Ошибка меню')
}
});
Рассчитываю высоту (топ) и фиксирую классом
.hiddenOverflow {
overflow: hidden;
width: 100%;
}
Появилось несколько проблем, первая что при закрытии возвращает к началу страницы (открывается правильно, но том месте на котором открыл), вторая проблема что при первом запуске приходится 2 раза нажимать что бы закрыть меню, потом все ок.
Прошу совета как исправить, быть может есть лучше решение?