Как полностью скрыть панель навигации в iPhone / HTML5
Я очень новой для HTML5 для мобильных. Я использую jQuery Mobile для своего текущего приложения, и у меня есть некоторые проблемы со скрытием панели навигации.
Я нашел этот сайт:http://m.somethingborrowedmovie.warnerbros.com/. (Я не вставляю эту ссылку для продвижения фильма.)
Я был просто поражен этим сайтом HTML5. Кто-нибудь имеет представление о методе, используемом для скрытия панели навигации?
меню также очень хорошо сделано. Есть ли рамки создавать такие приложения?
4 ответов
попробуйте следующее:
-
добавить
meta
в тегеhead
вашего HTML-файла:<meta name="apple-mobile-web-app-capable" content="yes" />
откройте свой сайт с помощью Safari на iPhone и используйте функцию закладки, чтобы добавить свой сайт на главный экран.
вернитесь на главный экран и откройте сайт с закладками. URL и строка состояния исчезнут.
покуда вам только нужно работать с iPhone, вы должны быть в порядке с это решение.
кроме того, ваш образец на warnerbros.com сайт использует Сенча сенсорный рамках. Ты можешь!--24-- > Google it для получения дополнительной информации или проверьте их демо.
Реми Шарп имеет хорошее описание процесса в своей статье "делать это правильно: пропуск строки url iPhone":
сделать iPhone скрыть строку url довольно просто, вам нужно запустить следующий код JavaScript:
window.scrollTo(0, 1);
однако есть вопрос о том, когда? Вы должны сделать это один раз высота правильная, так что iPhone может прокручиваться до первого пикселя документ, в противном случае он попытается, тогда высота загрузится принуждение адресную строку в вид.
вы можете подождать, пока изображения не загрузятся и окно.события onload событие срабатывает, но это не всегда работает, если все кэшируется, событие срабатывает слишком рано, и scrollTo никогда не имеет возможности прыгать. Вот пример использования window.onload:http://jsbin.com/edifu4/4/
Я лично использую таймер на 1 секунду - этого достаточно для мобильное устройство, пока вы ждете рендеринга, но достаточно долго что это не стреляет слишком рано:
setTimeout(function () { window.scrollTo(0, 1); }, 1000);
тем не менее, вы только хотите, чтобы это настроить, если это iPhone (или просто мобильный) браузер, поэтому подлый нюх (я обычно не поощряю это, но мне комфортно с этим, чтобы предотвратить "нормальных" браузерах от прыжков один пиксель):
/mobile/i.test(navigator.userAgent) && setTimeout(function () { window.scrollTo(0, 1); }, 1000);
самая последняя часть этого, и это та часть, которая, кажется, отсутствует в некоторых примерах, которые я видел в интернете: если пользователь конкретно связаны с фрагмент URL-адрес, т. е. URL-адрес и хеш-функцию ты не хочешь прыгать. Итак, если я перейду к http://full-frontal.org/tickets#dayconf - я хочу, чтобы браузер прокручивался естественно к элементу, чей id является dayconf, а не перейти к вершине использование scrollTo (0, 1):
/mobile/i.test(navigator.userAgent) && !location.hash && setTimeout(function () { window.scrollTo(0, 1); }, 1000);
попробуйте это на iPhone (или симуляторе)http://jsbin.com/edifu4/10 и вы увидите, что он будет прокручиваться только тогда, когда вы приземлились на странице без URL-адрес фрагмент.
проблема со всеми ответами, приведенными до сих пор, заключается в том, что на чем-то заимствованном сайте панель Mac остается полностью скрытой при прокрутке вверх, если вы просто используете решение scrollTo, а затем пользователь прокручивает вверх, панель навигации снова открывается, кажется, что весь сайт внутри div с прокруткой, так что вместо прокрутки страницы он прокручивается только внутри div и сохраняет панель навигации скрытой. Единственный способ открыть навигационную панель-коснуться верхней части экран.
простая навигация документа javascript к " # " сделает это.
window.onload = function()
{
document.location.href = "#";
}
это заставит панель навигации удалить себя при загрузке.