jQuery ScrollTop не может прокручиваться вниз

При нажатии на ссылку я использую ajax для обновления содержимого div, а затем использую scrollTop для перехода к началу содержимого. Проблема в том, что в течение секунды или двух после анимации, если вы попытаетесь прокрутить вниз, страница снова прокрутится вверх. Единственный способ обойти это — использовать быструю анимацию, но я хочу, чтобы она была немного медленной, чтобы пользователь мог видеть, что происходит. Как будто все еще работает анимация.


person user1313815    schedule 22.04.2012    source источник
comment
Есть ли возможность увидеть ваш рабочий код? (jsfiddle - хороший вариант)   -  person Hüseyin BABAL    schedule 23.04.2012


Ответы (1)


Попробуйте использовать serialScroll и scrollTo вместо встроенной прокрутки jQuery для более продвинутых функций. ScrollTo Флеслера позволяет пользователю прокрутить мышью, чтобы прервать текущее действие. Вы можете увидеть это в демонстрации

person Dylan Valade    schedule 22.04.2012
comment
Я просто не могу заставить это работать, и в итоге это прерывает вызов ajax. Буду продолжать попытки, но наверняка должен быть способ прервать анимацию jquery, вот код для вызова прокрутки jQuery('html,body').animate({scrollTop: x}, 1000); - person user1313815; 23.04.2012
comment
похоже, вы вызываете его дважды, так как html и body будут существовать в DOM. Интересно, вы прокручиваете мышью body, пока animate() html все еще работает. Судя по обсуждению документации для scrollTop, предпочтительным селектором является $('html').. - person Dylan Valade; 23.04.2012
comment
Код, который я разместил, кажется типичным примером использования этого, я пытался использовать только HTML или Body, но, похоже, он не работает, для меня уже поздно, и я только что вернулся из бара, завтра попробую другие способы. - person user1313815; 23.04.2012
comment
Использование только HTML или Body дает те же результаты, анимация продолжает работать. Но я реализовал анимацию сразу после запуска ajax-вызова, поэтому она запускается, пока содержимое извлекается, а не ждет, и это работает нормально - и на самом деле работает лучше. Не правильное решение, но оно работает для меня - person user1313815; 23.04.2012