Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.07.2016, 10:39
Аспирант
Отправить личное сообщение для emptyindorill Посмотреть профиль Найти все сообщения от emptyindorill
 
Регистрация: 16.02.2012
Сообщений: 73

Не работает плавная прокрутка к якорю после загрузки страницы
Здравствуйте. Для плавной прокрутки к якорю после загрузки страницы использую вот это:
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, посмотрел в гугле варианты ошибок - но так ничего и не понял. Подскажите пожалуйста - в чём может быть дело?
Ответить с цитированием
  #2 (permalink)  
Старый 25.07.2016, 11:05
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

window.hashName = window.location.hash; - Что это такое?

Uncaught TypeError: Не удается прочитать свойство 'top' не определено.
$(window.hashName).offset().top
Ответить с цитированием
  #3 (permalink)  
Старый 25.07.2016, 11:20
Аспирант
Отправить личное сообщение для emptyindorill Посмотреть профиль Найти все сообщения от emptyindorill
 
Регистрация: 16.02.2012
Сообщений: 73

Как я понял (тут взял) это проверка на наличие прокручиваемого тэга.
Ответить с цитированием
  #4 (permalink)  
Старый 25.07.2016, 11:43
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

нет такого элемента на странице и свойство что вы считываете нет. Можно html страницы на которой этот скрипт работает.
Ответить с цитированием
  #5 (permalink)  
Старый 25.07.2016, 12:13
Аспирант
Отправить личное сообщение для emptyindorill Посмотреть профиль Найти все сообщения от emptyindorill
 
Регистрация: 16.02.2012
Сообщений: 73

Что-то я вообще перестал понимать( Я забыл указать что у меня указан якорь - window.location.hash = '#anchor';
И прокрутка происходит, но не плавно а скачком - тут.
Ошибка та же - как тогда сделать что бы плавная прокрутка была?
Скрипт находится после футера.
Ответить с цитированием
  #6 (permalink)  
Старый 25.07.2016, 12:24
Аспирант
Отправить личное сообщение для Spass Посмотреть профиль Найти все сообщения от Spass
 
Регистрация: 14.07.2016
Сообщений: 86

window.location.hash = '';
   
  $(window).load(function () {
    $('html, body').animate({scrollTop: $('#anchor').offset().top}, 2000);
    return false;
  });


Так тоже не работает?
Ответить с цитированием
  #7 (permalink)  
Старый 25.07.2016, 13:12
Аспирант
Отправить личное сообщение для emptyindorill Посмотреть профиль Найти все сообщения от emptyindorill
 
Регистрация: 16.02.2012
Сообщений: 73

Переход на якорь есть а плавности нету.
И то если так -
window.location.hash = '#anchor';
Ответить с цитированием
  #8 (permalink)  
Старый 25.07.2016, 13:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Spass
Так тоже не работает?
верните страницу вверх перед load.
window.scrollTo(0,0);
  $(window).load(function () {
    $('html, body').animate({scrollTop: $('#anchor').offset().top}, 2000);
    return false;
  });
Ответить с цитированием
  #9 (permalink)  
Старый 25.07.2016, 14:01
Аспирант
Отправить личное сообщение для emptyindorill Посмотреть профиль Найти все сообщения от emptyindorill
 
Регистрация: 16.02.2012
Сообщений: 73

Сообщение от рони Посмотреть сообщение
верните страницу вверх перед load.
window.scrollTo(0,0);
  $(window).load(function () {
    $('html, body').animate({scrollTop: $('#anchor').offset().top}, 2000);
    return false;
  });
Блин, и это не работает.
Ответить с цитированием
  #10 (permalink)  
Старый 25.07.2016, 14:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение правок кода после обновления страницы qero Firefox/Mozilla 5 21.02.2016 17:30
выполнение функции после загрузки страницы kowapos Общие вопросы Javascript 2 31.03.2014 02:57
Плавный скролл к якорю после загрузки страницы pro100lexx87 jQuery 7 17.01.2014 14:13
После .load() не работает плагин зума rustleofstars jQuery 1 28.07.2012 16:36
Действие после полной загрузки Воитель Общие вопросы Javascript 4 02.10.2008 18:20