Разработка мобильных приложений / Разработка навигации с помощью jQuery
Смартфоны теперь оснащены некоторыми очень эффективными веб-браузерами. JavaScript является более мощным, чем когда-либо прежде, и может быть расширен с помощью библиотек кода, таких как jQuery. Когда вы добавляете последние спецификации HTML5 / CSS3, можно создавать очень быстрые мобильные веб-приложения с некоторым базовым кодом веб-интерфейса..
В этом уроке я покажу, как вы можете создать мобильный веб-сайт / веб-приложение. Мы будем использовать медиазапросы CSS3 для таргетинга на конкретные устройства и разрешения экрана. Плюс немного jQuery помогает анимировать меню и загружать контент внешней страницы с помощью Ajax-вызовов. Более того, макет может даже расширяться для правильного отображения в обычных настольных браузерах, таких как Chrome или Firefox.
- Live Demo
- Исходный код
Определение структуры страницы
Давайте начнем с того, что сначала перейдем к HTML-странице и стилизуем ее, используя некоторые правила CSS. Я пропущу большинство необычных метатегов в заголовке, поскольку они не влияют непосредственно на веб-приложение. Однако есть несколько, которые я должен упомянуть, а именно из фрагмента ниже:
X-UA-Compatible используется для описания того, как ваш документ должен отображаться в определенных браузерах. Это интересный сценарий при кодировании в HTML5, поэтому я бы не стал сильно беспокоиться об этом. Однако мета окно просмотра тег очень важен. Устанавливает окно мобильного браузера на 100% вместо стандартного эффекта увеличения.
Также возможно отключить пользовательское масштабирование со значением контента Пользователь масштабируемый = нет
. Но в этом случае мы просто хотим установить полную ширину экрана равной ширине нашего устройства. Теги веб-приложения Apple позволят сохранить веб-сайт в виде значка домашнего экрана на вашем iPhone или iPod Touch. Не совсем необходимо, но, безусловно, стоит иметь.
Содержание внутреннего тела
Внутри тега body я установил div обертки с идентификатором #W
. Внутри я разбил макет еще на два элемента, используя идентификаторы #pagebody
а также #navmenu
. Ширина всей страницы ограничена до 640 пикселей по выбору, так что макет масштабируется до строгого числа.
Меню навигации имеет более низкое значение z-index, чтобы #pagebody
всегда на высоте. Это очень важно, так как код JavaScript будет скользить по телу страницы на определенное количество пикселей, чтобы показать навигацию внизу.
Я использовал хеш-символ (#) перед каждой .html-страницей, чтобы остановить плохое поведение в Mobile Safari. Всякий раз, когда вы нажимаете на ссылку, появляется панель URL, которая перемещает содержимое вниз. Но при обращении к идентификатору ничего не загружается, кроме как через вызовы JavaScript.
CSS Позиционирование
В нашем CSS-коде не так много запутанного контента. Большая часть позиционирования выполняется вручную, а затем управляется с помощью jQuery. Но в нашем документе есть несколько интересных частей.
/ ** @ основное тело группы ** / #w #pagebody позиция: относительная; слева: 0; максимальная ширина: 640 пикселей; минимальная ширина: 320 пикселей; z-индекс: 99999; #w #navmenu background: # 475566; высота: 100%; дисплей: блок; положение: фиксированное; ширина: 300 пикселей; слева: 0px; верх: 0px; z-индекс: 0;
Этот верхний сегмент определяет стили для обоих разделов страницы. Наше навигационное меню имеет ширину всего 300 пикселей, так что остается немного места для того, чтобы содержимое страницы оставалось видимым. Кнопка открытия / закрытия меню также расположена прямо слева и всегда доступна. Важной частью здесь является значение свойства z-index и использование положение: фиксированное;
по нашему навмену.
Верхний заголовок панели инструментов также является интересным разделом. Это установлено в фиксированную позицию, поэтому оно будет прокручивать содержимое страницы. Это повторяет аналогичный эффект, который вы найдете в строке заголовка любого приложения iOS.
/ ** @ заголовок группы ** / #w # pagebody header # toolbarnav display: block; положение: фиксированное; слева: 0px; верх: 0px; z-индекс: 9999; background: # 0b1851 url ('img / tabbar-solid-bg.png') вверху слева no-repeat; радиус границы: 5 пикселей; -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; граница нижний правый радиус: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-right-radius: 0; граница нижний левый радиус: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; высота: 44 пикс; ширина: 100%; максимальная ширина: 640 пикселей; #w #pagebody header # toolbarnav h1 text-align: center; padding-top: 10px; отступ справа: 40px; цвет: # e6e8f2; вес шрифта: полужирный; размер шрифта: 2,1em; тень текста: 1px 1px 0px # 313131;
Мобильные правила
Легко заметить, что я также использую фоновое изображение для синей текстуры заголовка. Он имеет размер 640 × 44 пикселей, чтобы соответствовать согласованной структуре макета. Но я также разработал изображение @ 2x для дисплеев сетчатки iPhone / iPad. Вы можете увидеть оба изображения ниже или взять их из моего исходного кода демо.
- System/demo/img/[email protected]
- System/demo/img/[email protected]
Я настроил мобильный CSS для этой функции в другом файле с именем responsive.css. Он содержит два медиа-запроса, которые заменяют строку заголовка bg и значок кнопки меню для устройств Retina.
/ ** Retina Display ** / @media только экран и (-webkit-min-device-pixel-ratio: 2), только экран и (min - moz-device-pixel-ratio: 1.5), только экран и ( min-device-pixel-ratio: 1.5) #w #pagebody header background: # 0b1851 url ('img/[email protected] ') вверху слева no-repeat; размер фона: 640px 44px; #w #pagebody header # menu-btn background: url ('img/[email protected] ') no-repeat; размер фона: 53px 30px;
Разработка стрелок меню
В области навигации я также включил маленький значок стрелки справа от каждой ссылки меню. Это может быть легко заменено изображением из любой творческой работы. Но в основном все поклонники CSS3 будут любить тестировать этот метод.
#w #navmenu ul li a :: after content: "; display: block; ширина: 6px; высота: 6px; border-right: 3px solid # d0d0d8; border-top: 3px solid # d0d0d8; позиция: абсолютная; правая : 30px; верх: 45%; -webkit-transform: поворот (45 градусов); -moz-transform: поворот (45 градусов); -o-преобразование: поворот (45 градусов); преобразование: поворот (45 градусов); #w #navmenu ul li a: hover :: after border-color: # cad0e6;
Мы используем преобразование
Свойство для создания небольшой границы после содержимого. Я тоже настроил положение: абсолютное;
поэтому мы можем свободно перемещать эти границы вокруг внутреннего элемента ссылки. Очень просто изменить цвет границы при наведении, что дает более динамичное ощущение. Это невероятно, что вы можете сделать, просто используя основные правила HTML5 и CSS3.
Но теперь давайте перейдем к кусочкам кода JavaScript. Помните, что для правильной работы моего кода требуется включение в библиотеку jQuery..
JQuery Анимированные
При написании этих пользовательских кодов я создал новый документ под названием script.js. Не стесняйтесь писать это прямо в >