Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Одностраничная навигация offset() (https://javascript.ru/forum/dom-window/59651-odnostranichnaya-navigaciya-offset.html)

Vandeko 20.11.2015 23:14

Одностраничная навигация offset()
 
Здравствуйте, рад обратиться)
Есть боковое фиксированое меню с силками на якоря.
Нужно чтоб расстаяние к целевой секций измерялось относительно первой секции, а не от текущей.
Т.е. первый раз когда пользователь находиться в первой секции єкрана, меню срабатывает правильно переходя в заданную секцию, все последующие разы нет, так как расстаяние уже считается от текущей секции, а не от первой.
$(".menu").on("click","a", function (event) {
		event.preventDefault();
        $(this).parent().addClass('active').siblings().removeClass('active');
		var id  = $(this).attr('href'),
			top = $(id).offset().top;
            
        container.css('top', -top);
        
        console.log("top = "+top);
    });


Есть идея добавлять предадущее значение top (скажем с второй секции вернуться на первую 384+(-384)=0), но не знаю как реализовать такую схему.

Vandeko 21.11.2015 20:32

Наверное вопрос слишком сложный :D

рони 21.11.2015 21:09

Vandeko,
описание непонятно и макета нет чтоб понять о чём речь.

Vandeko 22.11.2015 01:37

Спасибо что дали возможность разобрался самому).
В следующий раз опишу вопрос подробней.

Решение:
var top2=0;//глобальная переменная
	$(".menu").on("click","a", function (event) {
		event.preventDefault();
        $(this).parent().addClass('active').siblings().removeClass('active');
		var id  = $(this).attr('href'),
			top = $(id).offset().top;
            top2 +=top;//суммирование расстаяний
            container.css('top', -top2);
        console.log("top = "+top);
    });    
});


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