Не работает плавная прокрутка к якорю после загрузки страницы

Здравствуйте. Для плавной прокрутки к якорю после загрузки страницы использую вот это:
window.hashName = window.location.hash;
 window.location.hash = '';
 
 $(window).load(function () {
	$('html, body').animate({scrollTop: $(window.hashName).offset().top}, 2000);
	return false;
 });
А консоль выдаёт мне ошибку Uncaught TypeError: Cannot read property 'top' of undefined.Использую jquery-2.2.0.min.jsЯ только-только начинаю учить javascript, посмотрел в гугле варианты ошибок - но так ничего и не понял. Подскажите пожалуйста - в чём может быть дело?
9 ответов

window.hashName = window.location.hash; - Что это такое? Uncaught TypeError: Не удается прочитать свойство 'top' не определено. $(window.hashName).offset().top


Как я понял (тут взял) это проверка на наличие прокручиваемого тэга.


нет такого элемента на странице и свойство что вы считываете нет. Можно html страницы на которой этот скрипт работает.


Что-то я вообще перестал понимать( Я забыл указать что у меня указан якорь - window.location.hash = '#anchor'; И прокрутка происходит, но не плавно а скачком - тут. Ошибка та же - как тогда сделать что бы плавная прокрутка была? Скрипт находится после футера.


window.location.hash = '';
 
 $(window).load(function () {
 $('html, body').animate({scrollTop: $('#anchor').offset().top}, 2000);
 return false;
 });
Так тоже не работает?


Переход на якорь есть а плавности нету. И то если так -
window.location.hash = '#anchor';


Так тоже не работает?
верните страницу вверх перед load.
window.scrollTo(0,0);
 $(window).load(function () {
 $('html, body').animate({scrollTop: $('#anchor').offset().top}, 2000);
 return false;
 });


верните страницу вверх перед load.
window.scrollTo(0,0);
 $(window).load(function () {
 $('html, body').animate({scrollTop: $('#anchor').offset().top}, 2000);
 return false;
 });
Блин, и это не работает.


*************, значит нет jquery или уже нет попробуйте заменить все $ на jQuery