Mobile App дизайн / Dev сграда навигация с jQuery
Смартфоните вече са оборудвани с някои много ефективни уеб браузъри. JavaScript е по-мощен от всякога и може да бъде разширен с помощта на кодови библиотеки като jQuery. Когато добавите най-новите спецификации на HTML5 / CSS3, е възможно да се изградят много бързи мобилни уеб приложения с някои основни кодове на frontend.
В този урок ще ви покажа как можете да създадете уебсайт / webapp, базиран на мобилни устройства. Ще използваме CSS3 медийни заявки за насочване към конкретни устройства и резолюции на екрана. Плюс малко jQuery помага за анимиране на менюто и зареждане на външно съдържание на страницата с помощта на Ajax повиквания. Дори по-добре, оформлението може дори да се разшири, за да се показва правилно в обикновените настолни браузъри като Chrome или Firefox.
- Демонстрация на живо
- Програмен код
Дефиниране на структурата на страницата
Нека започнем с преглеждането на HTML страницата и да го оформяме с някои CSS правила. Ще пропусна повечето от необичайните мета тагове в заглавката, тъй като те не засягат директно уеб приложението. Въпреки това има няколко, които трябва да спомена, а именно от откъса по-долу:
X-UA-съвместим се използва за описание на начина, по който документът трябва да се визуализира в някои браузъри. Това е интересен сценарий, когато се кодира в HTML5, така че не бих се притеснявал прекалено много за това. Въпреки това мета Прозорецът е много важно. Той настройва прозореца на мобилния браузър на 100% вместо стандартния увеличен ефект.
Възможно е също така да забраните потребителското увеличение със стойността на съдържанието потребителя мащабируеми = няма
. Но в този случай ние просто искаме да настроим ширината на целия екран да бъде същата като нашата ширина на устройството. Маркерите на уеб приложенията на Apple ще позволят уебсайтът да бъде запазен като икона на началния екран на вашия iPhone или iPod Touch. Не е напълно необходимо, но със сигурност си струва.
Съдържание на вътрешно тяло
Вътре в тялото етикет Аз настройка обвивка DIV с ID #W
. Отвътре съм счупил оформлението в още две divs, използвайки идентификатори #pagebody
и #navmenu
. Цялата ширина на страницата е ограничена до 640px по избор, така че подредбата да се превърне в строг номер.
Навигационното меню получава по-ниска стойност на z-индекса, така че #pagebody
винаги е на върха. Това е от решаващо значение, тъй като кодът на JavaScript ще се плъзга по тялото на страницата с определен брой пиксели, за да разкрие навигацията отдолу.
Използвал съм символа на хеш (#) пред всяка .html страница, за да спрем лошото поведение в Mobile Safari. Всеки път, когато щракнете върху връзката, се появява лентата с адреси и натискате съдържанието. Но при позоваване на идентификатор нищо не се презарежда, освен чрез JavaScript повиквания.
Позициониране на CSS
В нашия CSS код няма много объркващо съдържание. По-голямата част от позиционирането се извършва ръчно и след това се манипулира чрез jQuery. Но в нашия документ има няколко интересни парчета.
/ ** @group основна част ** / #w #pagebody position: relative; наляво: 0; max-width: 640px; min-width: 320px; z-индекс: 99999; #w #navmenu background: # 475566; височина: 100%; дисплей: блок; позиция: фиксирана; ширина: 300px; наляво: 0px; отгоре: 0px; z-индекс: 0;
Този най-висок сегмент определя стилове за двете части на страницата. Нашето меню за навигация е само с ширина 300 пиксела, така че остава малко място за съдържанието на страницата, което все още може да се види. Бутонът за отваряне / затваряне на менюто също се намира директно от лявата страна и винаги е достъпен. Важното тук е стойността на свойството z-index и използването позиция: фиксирана;
на нашето меню.
В горната част на лентата с инструменти също е интересна секция. Това е настроено на фиксирана позиция, така че да превърта със съдържанието на страницата. Това повтаря подобен ефект, както бихте намерили в заглавната лента на приложението на iOS.
/ ** @group header ** / #w #pagebody header # toolbarnav display: block; позиция: фиксирана; наляво: 0px; отгоре: 0px; z-индекс: 9999; фон: # 0b1851 url ('img / tabbar-solid-bg.png') отгоре вляво не се повтаря; граничен радиус: 5px; -moz-border-radius: 5px; - радиус: 5px; -ограничен радиус: 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; височина: 44px; ширина: 100%; max-width: 640px; #w #pagebody header # toolbarnav h1 text-align: център; пълнеж: 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 display ** / @media само екран и (-webkit-min-device-pixel-ratio: 2), само екран и (min - moz-device-pixel-ratio: 1.5), само екран и ( min-device-pixel-ratio: 1.5) #w #pagebody header (фон: # 0b1851 url ('img/[email protected] ') отгоре вляво няма повторение; размер на фона: 640px 44px; #w #pagebody header # menu-btn фон: url ('img/[email protected] ') не се повтаря; размер на фона: 53px 30px;
Проектиране на стрелки на менюто
В зоната за навигация също включих малка икона със стрелка над дясната страна на всяка връзка с менюто. Това лесно може да бъде заменено с изображение от произведения на изкуството на „Creative Commons“. Но най-вече всички любители на CSS3 ще обичат да тестват този метод.
#w #navmenu ul li a :: after content: "; дисплей: блок; ширина: 6px; височина: 6px; граница вдясно: 3px плътна # d0d0d8; граница отгоре: 3px плътна # d0d0d8; позиция: абсолютна Top: 45%; -webkit-transform: rotate (45deg); -moz-transform: rotate (45deg); -o-transform: rotate (45deg); transform: rotate (45deg); #w #navmenu ul li a: hover :: after border-color: # cad0e6;
Използваме трансформиране
собственост за създаване на малка граница след съдържанието. Аз също настройка позиция: абсолютна;
така че ние можем свободно да движим тези граници около вътрешната връзка. Това е супер лесно да промените цвета на границата на състояние на навъртане, което предлага по-динамично усещане. Това е доста невероятно това, което можете да постигнете само с помощта на основните правила HTML5 и CSS3.
Но сега нека да преминем към битовете и парчетата на JavaScript кода. Не забравяйте, че това изисква включване към библиотеката jQuery, за да може моят код да работи правилно.
jQuery Анимиран
При писането на тези потребителски кодове създадох чисто нов документ с име script.js. Чувствайте се свободни да ги напишете директно >