У меня есть этот код, где goUp
- это кнопка, а div1
- это то, где я хочу прокручивать, когда кнопка нажата:
$("#goUp").on('click', function(){
var offsetImg = $("#div1").offset();
window.scrollTo(0,offsetImg.top);
})
Он работает правильно, и у меня есть в производстве, но когда я иду с Android, он не работает, просто прокручивается до верхней части страницы (тег div1
не находится наверху на веб-странице). Но работает, если я передаю число вместо второго аргумента window.scrollTo(0,70);
, Я не могу тестировать разработку с помощью Android, поэтому я хочу помочь выяснить эту проблему.
Мое первое предположение заключалось в том, что offsetImg.top
не получил целое число, но он должен. Возможно, я мог бы попробовать parseInt(offsetImg.top)
, но, похоже, здесь нет смысла.
Рассмотрев другие вопросы, я видел, что это проблема с рендерингом. Однако метод scrollTo()
вызывается перед вызовом Ajax (сразу после e.preventDefault();
), когда загружается все содержимое. И содержимое div1
не меняется.
Любая идея о том, что здесь может произойти?
Вы можете попробовать на сайте http://itransformer.es. Если вы прикрепляете изображение, при выполнении преобразования submit, окно должно прокручиваться до верхней части изображения.
Непроверенный (у него нет телефона Android), но попробуйте заменить window
$(document)
и используйте scrollTop()
вместо scrollTo()
:
$("#goUp").on('click', function(){
var offsetImg = $("#div1").offset();
$(document).scrollTop(offsetImg.top);
})
Пример: http://jsfiddle.net/QSJZw/3/
$("body").scrollTop(offsetImg.top);
не работает