nekrasov444
@nekrasov444

Почему при закрытии меню страница скролится в самый вверх?

Здравствуйте, сначала сделал меню на 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 раза нажимать что бы закрыть меню, потом все ок.

Прошу совета как исправить, быть может есть лучше решение?
  • Вопрос задан
  • 25 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Витебск
от 2 800 до 3 300 $
03 мар. 2021, в 10:47
25000 руб./за проект
03 мар. 2021, в 10:29
4000 руб./за проект
03 мар. 2021, в 10:04
2000 руб./за проект