想必开发手机网站或手机app的开发者都应该接触到jquery mobile了,它建立在jQuery Core和jQuery Ui之上,是适用于移动设备的 .Net框架。作用在于能为智能机,平板机,电子阅读器,台式机等众多平台,提供以HTML5技术为基础的UI。
下载链接:jquery mobile最新版
当你看着Apple 的iOS device 和Android 各自来势汹汹,不知道到底该让你的服务选哪边站的时候, 是否曾经偷偷地希望在完成一个平台的开发工作之后,可以将这个app 也port 到另外一个平台?jQuery Mobile 就是一个这么方便的framework, 尤其是小公司人手不足,jQuery Mobile 更可以大幅省下你将你的application 发布不同平台的力气。
这篇文章会简单介绍jQuery Mobile 运作的哲学、jQuery Mobile 所提供的工具、并且会以实际的例子带大家认识jQuery Mobile, 以及jQuery Mobile 所提供种种便利的功能。
使用过jQuery 的人一定都爱死jQuery 有名的“write less, do more” 。只要透过jQuery, 我们就不用再担心恼人的跨浏览器问题。但随着手持式装置的渐渐普及,大家开始发现跨览器问题到了手机上反而比PC 上更加严重:在手机上不只是浏览器不同,OS 的歧异度也比PC 上来得更加严重。于是,在2010 的10 月jQuery 终于在大家的期待之下推出了jQuery Mobile。只要使用这个简单易用的framework, 很快就可以做出跨device 的mobile appilcation。jQuery Mobile 几个重要的features 包括:
jQuery mobile 运作的方式很简单,他主要的流程包括三个步骤
下面是一个简单的范例:
<!DOCTYPE html> < html > < head > < title >jQuery Mobile Tutorial on Codeforest.net</ title > < link rel = "stylesheet" href = " http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css " /> < script src = " http://code.jquery.com/jquery-1.4.3.min.js " ></ script > < script src = " http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js " ></ script > </ head > < body > < div data-role = "page" > < div data-role = "header" > < h1 >Title</ h1 > </ div > <!-- /header --> < div data-role = "content" > < p >The content</ p > </ div > <!-- /content --> < div data-role = "footer" > < h4 >The Footer</ h4 > </ div > <!-- /footer --> </ div > <!-- /page --> </ body > </ html >
几个重点:
在浏览器输入这个档案的位址,就可以看到下面这个画面:
List View 可以算是手机上常常使用的UI,它的长相如上图。 在jQuery Mobile 要实作这样的UI 非常简单,只要用一般HTML 常常使用的ordered list (<ol> + <li>), 或是unordered list (<ul> + <li>) ,并在<ul>加上data-role=”listview” 就可以了。 像上图的UI ,它的HTML 其实非常简单:
... < ul data-role = "listview" data-inset = "true" data-theme = "c" data-dividertheme = "b" > < li data-role = "list-divider" >Overview</ li > < li >< a href = "docs/about/intro.html" >Intro to jQuery Mobile</ a ></ li > < li >< a href = "docs/about/features.html" >Features</ a ></ li > < li >< a href = "docs/about/accessibility.html" >Accessibility</ a ></ li > < li >< a href = "docs/about/platforms.html" >Supported platforms</ a ></ li > </ ul > ...
几个重点:
List View可以有很多种变化,详细的说明可以参考jQuery Mobile上的对List views的说明。这里简单介绍三种常用的变化:
< ul data-role = "listview" > < li >< a href = "index.html" > < img src = "images/album-bb.jpg" /> < h3 >Broken Bells</ h3 > < p >Broken Bells</ p > </ a ></ li > ... </ ul >
< h2 style = "padding: 1em 0;" >A list with count bubbles</ h2 > < ul data-role = "listview" data-inset = "true" > < li >< a href = "#" >SuperWidgets</ a > < span >14</ span ></ li > < li >< a href = "#" >MegaWidgets</ a > < span >0</ span ></ li > < li >< a href = "#" >WonderWidgets</ a > < span >327</ span ></ li > </ ul >
< div data-role = "footer" > < div data-role = "navbar" > < ul > < li >< a href = "#" data-icon = "grid" data-iconpos = "top" >Summary</ a ></ li > < li >< a href = "#" data-icon = "star" data-iconpos = "top" >Favs</ a ></ li > < li >< a href = "#" data-icon = "gear" data-iconpos = "top" >Setup</ a ></ li > </ ul > </ div > <!-- /navbar --> </ div > <!-- /footer -->
几个重点:
< style type = "text/css" > .nav-glyphish-example .ui-btn .ui-btn-inner { padding-top: 40px !important; } .nav-glyphish-example .ui-btn .ui-icon { width: 30px!important; height: 30px!important; margin-left: -15px !important; box-shadow: none!important; -moz-box-shadow : none!important; -webkit-box-shadow: none!important; -webkit-border-radius: none !important; border-radius: none !important; } #chat .ui-icon { background: url(glyphish-icons/09-chat2.png) 50% 50% no-repeat; background-size: 24px 22px; } #email .ui-icon { background: url(glyphish-icons/18-envelope.png) 50% 50% no-repeat; background-size: 24px 16px; } #login .ui-icon { background: url(glyphish-icons/30-key.png) 50% 50% no-repeat; background-size: 12px 26px; } #beer .ui-icon { background: url(glyphish-icons/88-beermug.png) 50% 50% no-repeat; background-size: 22px 27px; } #coffee .ui-icon { background: url(glyphish-icons/100-coffee.png) 50% 50% no-repeat; background-size: 20px 24px; } #skull .ui-icon { background: url(glyphish-icons/21-skull.png) 50% 50% no-repeat; background-size: 22px 24px; } </ style > < div data-role = "footer" class = "nav-glyphish-example" > < div data-role = "navbar" class = "nav-glyphish-example" data-grid = "d" > < ul > < li >< a href = "#" id = "chat" data-icon = "custom" >Chat</ a ></ li > < li >< a href = "#" id = "email" data-icon = "custom" >Email</ a ></ li > < li >< a href = "#" id = "skull" data-icon = "custom" >Danger</ a ></ li > < li >< a href = "#" id = "beer" data-icon = "custom" >Beer</ a ></ li > < li >< a href = "#" id = "coffee" data-icon = "custom" >Coffee</ a ></ li > </ ul > </ div > </ div >
< div data-role = "fieldcontain" > < label for = "name" >Text Input:</ label > < input type = "text" name = "name" id = "name" value = "" /> </ div >
jQuery Mobile 提供了许多开发mobile app 的工具。这篇文章带大家简单认识了jQuery Mobile Progressive Enhancement 为不同装置提供不同工具的哲学、知道jQuery mobile 设定的定程,也认识了jQuery Mobile 所提供的工具,包括:list view , navigation bar, form elements 等等。希望能够让大家体会到jQuery mobile 的便利性,让我们一起来“write less, do more”