У меня есть страница с навигацией по различным разделам. Каждый из них обеспечивает привязку для этой страницы, чтобы кто-то мог легко вернуться к разделу. Я хочу, чтобы нормальный механизм работал правильно, но вместо перехода в раздел (в соответствии с обычным поведением браузера) я хочу, чтобы он прокручивался туда.Прокрутите до якоря, сохраняя хэш
Я реализовал прокрутку, которая хорошо работает. Я просто не знаю, как сохранить хеш-адрес как e.preventDefault()
, останавливает это из-за происходящего. Если я удалю эту строку, страница начнет мигать перед прокруткой.
$(".navigation a").click(function(e){
$(".navigation a").removeClass("active");
$(this).addClass("active");
if ($(this).attr("href").substring(0,1) == "#"){
e.preventDefault();
$('html, body').animate({
scrollTop: $($(this).attr("href")).offset().top
}, 1000);
}
});
Проверьте это: http://stackoverflow.com/questions/6478485/jquery-change-the-url-address-without-redirecting –
Как это помощь меня? Изменение «document.location.hash» мгновенно перескакивает на страницу без прокрутки! – Chris
Попробуйте 'return false', а также' preventDefault'. Лучше? –