Точно. Убрал a.preventDefault(); и якоря без jQ заработали, а с ним нет.
Вот так смотрю offset :
var id = $(this).attr('href');
//узнаем высоту от начала страницы до блока на который ссылается якорь
top = $(id).offset().top;
console.log($(top));
И длина(lenght) всегда равна единице.
В чём может быть проблема?
В уроке -
$(document).ready(function(){
$("#menu").on("click","a", function (event) {
//отменяем стандартную обработку нажатия по ссылке
event.preventDefault();
//забираем идентификатор бока с атрибута href
var id = $(this).attr('href'),
//узнаем высоту от начала страницы до блока на который ссылается якорь
top = $(id).offset().top;
//анимируем переход на расстояние - top за 1500 мс
$('body,html').animate({scrollTop: top}, 1500);
});
});
Но что с preventDefault();, что без, ничего не меняется.