2016-01-25 5 views
0

Я построил мобильное навигационное меню на основе четырех вкладок. Первый элемент - это активный экран webapp. Остальные 3 элемента - это меню поиска, меню уведомлений и общее меню. Когда одна из последних трех вкладок нажата, они получают display: block с функцией jQuery show().Использовать старую jQuery scrollTop позицию при нажатии

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

var scrollposition = $(window).scrollTop(); 

$("#mobilenav").on("mouseup touchend", function(e) { 

    console.log(scrollposition); 

    $(notificationButton).on('click', function() { 
     notificationDiv.show(); 
     $(window).scrollTop(0); 
    }); 

    if(!notificationDiv.is(e.target) 
     && notificationDiv.has(e.target).length === 0) 
    { 
     notificationDiv.hide(); 
     $(window).scrollTop(scrollposition); 
    } 
}); 

Проблема в том, что он запоминает только прокрутку, когда страница загружается. Когда переменная скроллинг помещается внутри функции .on(), она обновляет позицию при нажатии кнопки уведомления, которая дает прокрутку значение 0.

ответ

0

Вы можете сохранить статус своего скрипта например onTop = false; и изменить статус внутри скрипта. когда вам нужно вернуться наверх или снизу, вы можете проверить статус и принять или изменить его.

+0

Было бы полезно, если бы вы могли представить полный код с вашими изменениями в своем ответе. – docksteaderluke

+0

Привет, спасибо за ваш ответ. Не могли бы вы привести пример того, как реализовать этот фрагмент кода? К сожалению, я еще не смог его решить. – Sanderfish