Почему. Анимат для прокрутки прыгает до 0, прежде чем анимировать?
-
25-10-2019 - |
Вопрос
Я играю с Parallax Scrolling Like On этот сайт Nike. Анкет Итак, я использовал Scrolltop Чтобы определить вертикальную позицию пользователя на странице, а затем я настраивал позиции элемента на основе изменений в этом значении.
Здесь я вокруг значения Scrolltop и регистрировать его. Я покажу журнал позже.
var distance = 60*(Math.round($(window).scrollTop()/60));
console.log(distance);
Затем, на щелчке, я называю эту функцию, которая прокручивается до значения Scrolltop, которое я его передал.
function goTo(n){
console.log('begin animating');
$('html,body').animate({scrollTop: n},2000);
}
Вот проблема, верхнее значение прокрутки поднимается до 0, прежде чем анимировать.
Так что я буду на полпути вниз по странице, и она входит в систему:
begin animating
0
6240
6180
6120
// etc...
То, как я позиционирую вещи, зависит от точности значения Scrolltop. Итак, мой вопрос:
Как я могу не допустить, чтобы значение Scrolltop не прыгнуло на 0, прежде чем пройти анимацию?
Дайте мне знать, если есть дополнительная информация.
Вот живая версия сайта: http://theblueeeguy.com/moon/illumination/
(Нажмите «Далее», а затем «Преды», чтобы сломать его)
Решение
Возможно, потому что вы используете ссылку с href="#"
.
Добавлять return false;
на ваш onclick
атрибут.
<a href="#" onClick="goTo(2160);return false;">< Prev | </a>