Почему. Анимат для прокрутки прыгает до 0, прежде чем анимировать?

StackOverflow https://stackoverflow.com/questions/8319051

Вопрос

Я играю с 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top