Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Прокрутка в исходное положение при некотором условии (https://javascript.ru/forum/dom-window/62837-prokrutka-v-iskhodnoe-polozhenie-pri-nekotorom-uslovii.html)

Mikle1990 04.05.2016 03:45

Прокрутка в исходное положение при некотором условии
 
Привет, друзья!

Есть меню для мобильной версии.
Я его не хотел помещать на самый верх, поэтому поместил внизу шапки. Возникла проблема - при раскрытии, пользователю не видно сразу всех пунктов меню, ему приходится прокручивать чуть ниже. Я эту проблему решил (scrollTop: 125). Далее я отменил эту прокрутку для ситуаций, когда пользователь находится в положении, когда при нажатии на меню он и так увидит все пункты меню.

Вопрос.
Как сделать, чтобы "ЕСЛИ пользователь при раскрытии меню находился в положении (posTop <= 124), то возвращаем его именно в то положение, где он находился"?.

Мысли.
Надо передать переменную posTop из первой функции во вторую. И добавить условие что:
if (posTop <= 124) {$('html, body').animate({scrollTop: posTop},500);}


Помогите, пожалуйста, а то знаний не хватает :-?

Исходный код:
jQuery(function($) {
$('#meanmenu-reveal').toggle(
    function(e){
	    var posTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
        if (posTop > 124) {return false;}
		$('html, body').animate({scrollTop: 125},500);
		return false;
    },
    function(e){
    return false;
    }
);
});

Dilettante_Pro 04.05.2016 10:43

Mikle1990,
Объявите posTop как глобальную переменную - вне всяких функций - и вы сможете пользоваться ей где угодно.
https://learn.javascript.ru/global-object


Часовой пояс GMT +3, время: 02:56.