Я знаю, что вариация на этот вопрос была задана несколько раз; Я уже некоторое время просматриваю ТАК, но либо я делаю что-то не так, либо я не нашел то, что мне нужно.
У меня есть структура вложенных комментариев, почти такая же, как в плагине Facebook Comments, и всякий раз, когда нажимается reply
, появляется маленькая форма с текстовой областью и кнопкой внизу комментариев.
Опять же, поведение аналогично плагину Facebook Comments, и я хочу добиться того же, когда дело доходит до прокрутки недавно добавленной текстовой области в поле зрения.
Я пробовал плагин scrollTo, и он работает плавно, но, даже если я прокручиваю вручную до самого низа страницы, анимация прокрутки всегда сбрасывает позицию прокрутки и начинается сверху.
Для записи, вот как я вызываю scrollTo:
$.scrollTo($('#addReply_1'), 800);
где addReply_1
- это div
содержащий форму. Я пролистал прокрутку до самой формы и до textarea
. Те же результаты.
Есть ли способ прокрутить элемент, только если он еще не виден?
Я перепробовал множество решений, предлагаемых в SO, например, прокрутку до элемента, использующего jQuery, но ни одно из них не работает так, как хотелось бы; даже прокрутка до определенного элемента с помощью jQuery или проверка, видим ли элемент после прокрутки, демонстрирует такое же "нервное" поведение.
ОБНОВЛЕНИЕ: онлайн демо, чтобы показать поведение
Я загрузил демонстрационную HTML-страницу, на которой показано поведение, на которое я жалуюсь: http://www.wouldbebetter.com/demo/comment-demo.htm
Просто прокрутите страницу вниз и нажмите любую из ссылок " Reply
чтобы увидеть "нервную" прокрутку, на которую я ссылаюсь.
Обратите внимание, что это демо использует scrollintoview
плагин из @Robert Koritnik ответа, но поведение такое же, если я использую, например, ScrollTo.