Почему .animate to scrollTop перепрыгивает на 0 перед анимацией? - PullRequest
2 голосов
/ 30 ноября 2011

Я играю с прокруткой Параллакса, как на сайте 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точность значения scrollTop.Итак, мой вопрос:

Как я могу удержать значение scrollTop от скачка до 0, прежде чем приступить к анимации?

Дайте мне знать, если вам нужна дополнительная информация.
Здесьживая версия сайта: http://theblueeyeguy.com/moon/Illumination/

(нажмите «Далее», затем «Предыдущий», чтобы сломать его)

1 Ответ

7 голосов
/ 30 ноября 2011

Возможно, потому что вы используете ссылку с href="#".

Добавьте return false; к вашему атрибуту onclick.

<a href="#" onClick="goTo(2160);return false;">< Prev | </a>
...