jQuery Mobile - страница переходит наверх перед переходом - PullRequest
5 голосов
/ 30 ноября 2011

У кого-нибудь была эта проблема, когда перед переходом страница быстро перепрыгивала наверх (оставляя заголовок с фиксированной позицией потерянным на полпути вниз по странице)?

По возвращении на страницу страница оказывается вверху, но, поскольку я имею дело с длинным списком, было бы предпочтительнее оставить его там, где я остановился на предыдущей странице.

Я использую внутристраничные div вместо реальных отдельных страниц, если это, возможно, способствует этому.

Любые советы приветствуются!

Ответы [ 3 ]

6 голосов
/ 17 июля 2012

Использовать $ .mobile.defaultHomeScroll = 0.

Отсюда: https://github.com/jquery/jquery-mobile/issues/2846

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

Мы сталкивались с этим несколько раз.Наше решение состоит в том, чтобы все страницы были точно на высоте экрана.Если ваш контент длиннее экрана, он помещается в прокручиваемый контейнер DIV.Если вы ориентируетесь на iOS 4 и ниже, вам понадобится библиотека, такая как iScroll, чтобы сделать прокрутку DIV переполненной: прокрутка (или авто) не работает должным образом.После этого вы можете плавно переходить между страницами.

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

Это известная проблема, которая может быть изменена в jQuery Mobile 1.1. Проблема заключается в том, что для анимации перехода на другую страницу viewport должен находиться вверху страницы, чтобы текущая страница и страница перехода были выстроены вертикально.

Если бы вы были на полпути вниз по длинному списку на одной странице (скажем, 1000px), а страница, на которую вы переходите, имеет высоту всего несколько сотен пикселей, тогда текущая страница будет правильно анимироваться за пределами экрана, но новая страница не будет виден, как это было бы над окном просмотра.

Я исправляю это, используя iScroll для моих областей прокрутки. Таким образом, все страницы занимают 100% ширину / высоту области просмотра, и переходы "прокрутка к вершине до перехода" не выполняются.

...