Я пытаюсь прокрутить вниз на 100 пикселей каждый раз, когда пользователь приближается к верхней части документа.
У меня функция выполняется, когда пользователь приближается к верхней части документа, но функция .scrollTo не работает.
Я помещаю предупреждение после и до, чтобы проверить, действительно ли это была линия или нет, и срабатывает только первое предупреждение, вот код:
alert("starting");
$.scrollTo({ top: '+=100px', left: '+=0px' }, 800);
alert("finished");
Я знаю, что у меня есть страница jquery, связанная правильно, потому что я использую много других функций jquery повсюду, и все они работают нормально. Я также попытался удалить «px» сверху, и, похоже, это не имеет значения.
Ответы:
Если он не работает, почему бы вам не попробовать использовать метод scrollTop в jQuery?
Если вам нужна плавная прокрутка, вы можете использовать базовую функцию javascript setTimeout / setInterval, чтобы она прокручивалась с шагом 1 пиксель в течение заданного периода времени.
источник
источник
html, body
вместо просто html?body
ломает это в Chrome 4: stackoverflow.com/questions/1890995/…scrollTop: 0
тоже работает нормально. Но продолжительность сокращается. Работает нормально, если установлена скорость 1000jQuery теперь поддерживает scrollTop в качестве переменной анимации.
Для плавной прокрутки больше не нужно использовать setTimeout / setInterval.
источник
$("#id").offset().top
вместо этого?Чтобы обойти проблему с
html
vsbody
, я исправил это, не анимируя CSS напрямую, а вызываяwindow.scrollTo();
на каждом шаге:Это прекрасно работает без каких-либо проблем с обновлением, поскольку использует кроссбраузерный JavaScript.
Взгляните на http://james.padolsey.com/javascript/fun-with-jquerys-animate/ для получения дополнительной информации о том, что вы можете делать с функцией анимации jQuery.
источник
window.pageYOffset
к$(window).scrollTop()
иwindow.scrollTo(0, val)
к$(window).scrollTop(val)
так что я не должен беспокоиться о совместимости браузера.Похоже, у вас немного неправильный синтаксис ... Я предполагаю на основе вашего кода, что вы пытаетесь прокрутить вниз на 100 пикселей за 800 мс, если да, то это работает (с использованием scrollTo 1.4.1):
источник
На самом деле что-то вроде
будет хорошо работать и поддерживать отступы. Вы также можете легко поддерживать поля - подробности см. Ниже
источник