jQuery Mobile 构建手机 Web 网站介绍

jQuery Mobile 构建手机 Web 网站介绍

jQuery Mobile 认知

  • jQueryMobile不是jQuery的移动版本
  • jQueryMobile是一个jQuery的插件
  • jQueryMobile的大小(最小化) jQuery 1.6.2(90k)
    jQuery Mobile CSS (44k)
    jQuery Mobile JS (71K)
    img (<10k)

jQuery Mobile 的作用

  • 可以轻松的帮助我们实现非常好看的、可跨设备的Web应用程序。
  • jQuery Mobile 开发的web应用像NativeApp
  • jQuery Mobile 包含Web应用中的各种常用部件 对话框、表单、列表、按钮、工具条等
  • 使用Ajax加载页面,实现炫丽的页面切换效 果

jQuery Mobile 关键特点

  • 基于jQuery
  • 兼容主流的手机浏览器和桌面浏览器
  • 体积小,压缩后20K左右
  • HTML5风格的配置
  • 页面自动初始化,通过data-role属性自动对页 面部件进行初始化
  • 触摸屏和鼠标事件支持
  • 丰富的UI部件
  • 可扩展的页面样式框架

Hello HTML5

一个最基本的 jQuery Mobile 页面:

<!DOCTYPE html> <html>
<head>
    <meta charset="utf-8" />
    <title>Hello HTML5</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.css" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.js"></script>
</head>
<body>
<div data-role="page"><!-- 从 1.0 Beta2 开始该元素可选-->
    <div data-role="header"><h1>Hello HTML5</h1></div><!-- /header -->
    <div data-role="content"><p>Page content goes here.</p></div>
    <!-- /content -->
    <div data-role="footer">
        <h4>©开源社区</h4>
    </div><!-- /footer -->
</div><!-- /page -->
</body>
</html>

jQuery Mobile 的链接处理方式

  • 默认的链接行为:Ajax加载
    显示(loading...)
  • 以下方式禁用Ajax加载链接
    ref=‘external’ data-ajax=‘false’ target=‘xxx ’
  • 返回链接 data-rel=‘back’
  • 其他链接 mailto:xxxx@xxxx.com tel:15555555555 wtai://wp/mc;15555555555 dc:234234234

jQuery Mobile 内置的6种页面主题

引入主题的方式:

<div data-role=‘page’ data-theme=‘b’>

jQuery Mobile 的工具栏/导航条

在 jQuery Mobile 中, 有两种标准类型的工具栏:

  • Header bar 充当页面标题的作用, 通常是 mobile page中的第一个元素,一 般包含有一个页面标题和两个按钮。
<div data-role=‘header’>
  • Footer bar 通常是最后一个元素,相 比于header在内容和功能上面更加自 由, 但是一般包含一些文字和按钮。
<div data-role=‘footer’>
  • 导航条:
<div data- role="navbar">
    <ul>
        <li>   </li>

jQuery Mobile 的按钮

  • inline按钮(多个按钮放置一行)
<div data-inline="true">
    <a href="index.html" data-role="button">Cancel</a>
    <a href="index.html" data-role="button" data-theme="b">Save</a>
</div>
  • 分组按钮
<div data-role="controlgroup" data-type="horizontal">
    <a href="index.html" data-role="button">Yes</a>
    <a href="index.html" data-role="button">No</a>
    <a href="index.html" data-role="button">Maybe</a>
</div>

jQuery Mobile 的表格 Grid Layout

jQuery Mobile 自带 2 ~ 5 列的表格,分别是:class=ui-grid-a/b/c/d 示例:

<div class="ui-grid-b">
    <div class="ui-block-a">
        <div class="ui-bar ui-bar-e">A</div>
    </div>
    <div class="ui-block-b">
        <div class="ui-bar ui-bar-e">B</div>
    </div>
    <div class="ui-block-c">
        <div class="ui-bar ui-bar-e">C</div>
    </div>
    <div class="ui-block-a">
        <div class="ui-bar ui-bar-e">A</div>
    </div>
    <div class="ui-block-b">
        <div class="ui-bar ui-bar-e">B</div>
    </div>
    <div class="ui-block-c">
        <div class="ui-bar ui-bar-e">C</div>
    </div>
    <div class="ui-block-a">
        <div class="ui-bar ui-bar-e">A</div>
    </div>
    <div class="ui-block-b">
        <div class="ui-bar ui-bar-e">B</div>
    </div>
    <div class="ui-block-c">
        <div class="ui-bar ui-bar-e">C</div>
    </div>
</div>

jQuery Mobile 的可折叠块

<div data-role="collapsible" data-collapsed="true"> 
    <h3>I'm a header</h3>
    <p>I'm the collapsible content. By default I'm openand displayed on the page, but you can click the header to hide me.</p>
</div>

jQuery Mobile 表单

  • 支持文本框的 placeholder="..." 属性
  • 通过 data-ajax="false" 禁用 Ajax 加载
  • 通过data-theme让表单使用不同的主题
  • 可以使用HTML5新的类型,如email, tel, number 等
  • <textarea>会自动根据输入的内容扩展输入 框的高度,避免在手机上麻烦的滚动条

jQuery Mobile 的列表 List View

列表广泛用于数据显示,导航,结果列表,数据项输入等,
jQuery Mobile包含了许多不同列表类型和格式化的例子来 覆盖大部分的设计需求。

<ul data-role="listview" data-theme="g">
    <li><a href="acura.html">Acura</a></li> 
    <li><a href="audi.html">Audi</a></li> 
    <li><a href="bmw.html">BMW</a></li>
</ul>

jQuery Mobile 的各种不同列表

  • 基本列表
  • 嵌套列表
  • 编号列表
  • 只读列表
  • 拆分按钮列表
  • 列表分隔
  • 搜索过滤器
  • 气泡计数
  • 缩略图和图标

jQuery Mobile 的初始化

mobileinit事件

当jQuery Mobile开始执行的时候, 它会在document对象上触发一个mobileinit 事件

$(document).bind("mobileinit", function(){ //这里是重写的代码
    $.mobile.foo = bar;
});

$.mobile 的配置选项

subPageUrlKey (string, default: "ui-page"):
url参数用来引用由插件生成的子页面(例如那些由嵌套的listview生成的子页面) 例如:
example.html&ui-page=subpageIdentifir.
在&ui-page=前的部分被jquery mobile框架 用来向子页面所在的URL发送一个ajax请求.

nonHistorySelectors (string, default: "dialog"):
对于带有data-rel属性值的a标签链接 或者 带有data-role属性值的page,如果它们匹配这些选择器(即该string参数),那么它们不会在历史记录中被追踪 (即它们不会在 location.hash中被更新也不会被浏览器历史所标记).

activePageClass (string, default: "ui-page-active"):
该class被分配给当前视图中的page (包括过渡状态中的)

activeBtnClass (string, default: "ui-page-active"):
该class用于"激活"button的状态 (参见css框架).

ajaxEnabled (boolean, default: true):
当可能的时候jQuery Mobile 会自动通过ajax处理链接点击以及表单提交,如果不行,url hash 监听将会停止,url也会像常规那样发出HTTP 请求.

ajaxLinksEnabled (boolean, default: true):
只要可行的时候,jQuery Mobile 就会自动通过ajax处理链接的点击.

ajaxFormsEnabled (boolean, default: true):
只要可行的时候,jQuery Mobile 就会自动通过ajax处理页面提交.

autoInitialize (boolean, default: true):
当该选项被设置为false时 自动初始化功能将延迟嵌入页面(page)的增强功能直到
$.mobile.initializePage();被显式调用. 默认情况下当DOM加载完毕page将会被增强.

**defaultTransition (string, default: 'slide'): **
设置页面过渡效果(ajax请求),设置为'none'表示没有任何过渡效果.

**loadingMessage (string, default: "loading"): **
设置页面加载时显示的文本. 如果设置为false, 将不会显示任何文本.

metaViewportContent (string, default: "width=device-width, minimum-scale=1, maximum-scale=1"):
配置自动生成的meta标签,如果为false,将不会为DOM添加任何meta标签. gradeA (函数返回boolean值, default: 该函数默认返回 $.support.mediaquery 的值):
浏览器必须符合所有支持的条件才会返回 true.

jQuery Mobile 事件

触摸

在快速完整的一次触摸后触发该事件.

  • taphold
    在按住不放后触发该事件(接近一秒钟的时间).Triggers after a held complete touch event (close to one second).
  • swipe 在一秒钟的间隔内水平方向上拖动30px以上会触发该事件,(水平方向 上拖动要保持在20px以内,否则不会触发).
  • swipeleft 在左边方向移动时触发该事件.
  • swiperight 在右边方向移动时触发该事件..
  • tap

方向改变

  • orientationchange
    当设备的方向改变时触发 (把设备转到垂直或者水 平方向). 你绑定到此事件的回调函数可以有一个 第二参数, 该参数包含一个orientation属性,该 属性可以设置为"portrait" 或 "landscape".这些值也 被添加为HTML元素的classes,你也可以在你的css 选择器里指定它们.
    要注意,当orientationChange不被支持时我们现目 前将绑定resize事件作为替代.

滚动

  • scrollstart 当滚动开始时触发.要注意的是,IOS设备在滚动时 会禁止DOM操作,并将DOM操作排队,当滚动结 束时才执行这些操作.我们现在正在研究是否能够 让DOM操作在滚动之前执行
  • scrollstop 滚动结束时触发.

页面隐藏和显示

  • pagebeforeshow
    当page正在被显示但在它的过渡效果开始前触发.
  • pagebeforehide
    当page正在被隐藏但在它的过渡效果开始前触发.
  • pageshow
    当page正在被显示但在它的过渡效果结束后触发.
  • pagehide
    当page正在被隐藏但在它的过渡效果结束后触发.

页面初始化

  • pagebeforecreate
    在页面正在初始化的时候触发(在初始化完成之前).
  • pagecreate
    在页面正在初始化的时候触发(在初始化完成之后).

jQuery Mobile 支持的设备

  • 完全支持(A级) 很多,包括iPhone/iPad/iTouch/Android/WP7 以及一些浏览 器的手机版
  • 较好支持(B级,无Ajax导航特性)
    黑莓5.0/Opera Mini 5-6/Windows Phone 6.5/Symbian^3
  • 基本支持(C级,仅基本页面功能可行) 黑莓4.x
  • 不支持
    Symbian S60/Meego/Bada/Palm WebOS 3.0

jQuery Mobile 的不足

大!
慢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 摘要 JQuery Mobile是针对智能手机和平板电脑创建的移动Web App开发框架,它的出现填补了JQuer...
    LiuXiaobing阅读 3,306评论 0 15
  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    程序员poetry阅读 114,104评论 24 450
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,494评论 18 139
  • JQuery Mobile(JQM、JQMobile) 你是否想知道为什么在 标签中 没有插入 type="te...
    aymincoder阅读 1,112评论 0 1
  • 【怦然心动】20170320 学习力践行day5.今天听了高效能事务管理法前两个小时的内容。1.彭彭对时间管理的理...
    怦然心动818阅读 154评论 0 0