Ответ 1
Сначала вам нужно включить jQuery.UI script, тогда ваш код должен выглядеть:
$('a').click(function(){
var top = $('body').find($(this).attr('href')).offset().top;
$('html, body').animate({
scrollTop: top
},500, 'easeOutExpo');
return false;
});
Для информации:
Облегчение
Оставшийся параметр .animate() - это строка, обозначающая ослабление функции для использования. Функция ослабления определяет скорость, с которой анимация прогрессирует в разных точках анимации. только ослабление реализаций в библиотеке jQuery по умолчанию, называемый свинг, и тот, который прогрессирует в постоянном темпе, называется линейно. Доступны более легкие функции с использованием плагинов, в первую очередь jQuery UI.
Почему ваш код не работает:
- Потому что вы используете
this
, который был в рамках метода анимации и ссылку на объектыbody
иhtml
. - Потому что
easing
не метод. Является строковым типом свойства анимации, поэтому вам нужно напишите его как строку, например:'easeOutExpo'
или"easeOutExpo"
.