Я создаю мобильное веб-приложение с jQuery Mobile и хотел бы скрыть панель поиска над видимой областью. Таким образом, пользователю нужно будет тянуть страницу вниз, чтобы увидеть панель поиска. Я думаю, что лучший способ сделать это - определить панель поиска, как обычно, а затем на загрузку страницы вручную установить положение прокрутки, скажем, 55 пикселей. Вот мой код:scrollTo получает переопределение при использовании jQuery Mobile
$(document).ready(function() {
$("html,body").scrollTop(55);
}
Проблема заключается в том, что я могу видеть на обновления страницы он скрыт от глаз, но как только он будет полностью загружен немедленно подскакивает назад к вершине. jQuery Mobile является виновником, поскольку это не происходит с этим простым JS Fiddle.
Как остановить JQM от переопределения моего набора scrollTop, или мне нужно реализовать его по-другому?
Это работает, спасибо. Однако это не идеально. Это не работает в мобильном Safari. Однако он работает на рабочем столе Safari. Даже при использовании 'pagebeforeshow' он показывает строку поиска в течение короткого момента, а затем этот код запускается, и страница перескакивает вниз, и полоса прокрутки видима. Как я могу закодировать его так, чтобы он не был заметным, поэтому он находится в этом месте прокрутки, а затем открывается страница? – Joey
@Omar Но предположим, что я внизу страницы и обновляю страницу. После обновления в соответствии со сценарием, который вы написали, он загрузит страницу с 100px, поэтому вы можете предложить, как сделать ее динамичной. – Vikram
@ Vikram, если вы _force refresh_ (f5), то вам нужно проверить, является ли текущая страница страницей _home_, а в истории jQM нет страницы. Просто, '$ .mobile.navigate.history.stack.length> 1', если true, прокрутите, в противном случае, dont. – Omar