说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

JQuery Mobile 页面结构

HTML文档下载 WORD文档下载 PDF文档下载
Jquery Mobile中的"页面"结构已经优化为支持单个的页面,或者在一个页面内嵌入的多个“page”。使用这种模型的目的是使WEB开发人员使用最佳实践创建WEB网站,使得普通的链接不需要任何特殊配置就可以工作,而且能创造出富媒体的像本地应用一样通过标准的http无法创造出的用户体验。

 

Jquery Mobile支持包含历史回退按钮的自动ajax读取外部页面的功能,一组页面转场动画,以及将页面显示为对话框的简易工具。

 

页面结构 Anatomy of a Page

 

Jquery Mobile中的"页面"结构已经优化为支持单个的页面,或者在一个页面内嵌入的多个“page”。

使用这种模型的目的是使WEB开发人员使用最佳实践创建WEB网站,使得普通的链接不需要任何特殊配置就可以工作,而且能创造出富媒体的像本地应用一样通过标准的http无法创造出的用户体验。

移动网站页面结构Mobile page structure

 

Jquery Mobile网站必须使用HTML5文档声明开始,使得网站能够适用HTML5的特性(不支持HTML5的旧浏览器会安全地静默忽略HTML5的文档声明和一些自定义属性)。 在head标签内需要引用Jquery,Jquery Mobile和mobile的主题CSS文件,我们推荐链接到  jQuery 的CDN上 :

HTML 代码:

<!DOCTYPE html> 

<html> 

<head> 

 <title>Page Title</title>

<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="http://code.Jquery.com/mobile/1.0a3/Jquery.mobile-1.0a3.min.css" />

<script type="text/javascript" src="http://code.Jquery.com/Jquery-1.5.min.js"></script>

<script type="text/javascript" src="http://code.Jquery.com/mobile/1.0a3/Jquery.mobile-1.0a3.min.js"></script>

</head> 

<body>

...

</body>

</html>

 

Viewport的meta标签

 

注意在内容之前在HEAD标签内有一个viewport的meta标签设定了浏览器怎样展示页 面的缩放等级和范围。如果没有设置的话,许多移动设备的浏览器会使用一个“虚 拟的”页面宽度,大约是900PX宽,使得桌面的网站工作的也很好,但是这样屏幕看 起来是缩小的而且太宽了。通过设置viewport属性为content="width=device- width, initial-scale=1,会使宽度会被设定为设备的屏幕宽度。

<meta name="viewport" content="width=device-width, initial-scale=1"> 

这个设置没有没有禁用用户缩放页面的权限,使得可访问性非常好。但是在iOS设备 上有一个小问题,就是旋转屏幕的时候,这个viewport的设定没有设置宽度,在将 来的版本我们希望能修正。如果有需求的话,你可以设定viewport 的其他的属性来 禁用缩放。

在body内:pages

 

在<body>标签内,移动网站的每一个视图或者“page”都要通过 data-role="page" 属性的标签来定义。

<div  data-role="page"> 

  ... 

 </div> 

在page容器内,任何有效的html标签都可以使用,但是对于Jquery Mobile的典型页面来说,page容器的直接子结点应该为使用"data-role"标记属性为"header""content"和"footer"的3个容器。

<div data-role="page"> 

 <div data-role="header">...</div> 

  <div data-role="content">...</div> 

  <div data-role="footer">...</div> 

</div>

一个完整的独立页面实例: Complete single page template

 

集合在一起后,这就是一个标准的Jquery Mobile页面的样板了。

html 代码:

<!DOCTYPE html> 

<html> 

 <head> 

  <title>Page Title</title>

<meta name="viewport" content="width=device-width, initial-scale=1"> 

<link rel="stylesheet" href="http://code.Jquery.com/mobile/1.0a3/Jquery.mobile-1.0a3.min.css" />

<script type="text/javascript" src="http://code.Jquery.com/Jquery-1.4.3.min.js"></script>

<script type="text/javascript" src="http://code.Jquery.com/mobile/1.0a3/Jquery.mobile-1.0a3.min.js"></script>

</head> 

<body>

 <div data-role="page">

  <div data-role="header">

   <h1>Page Title</h1>

   </div><!-- /header -->

   <div data-role="content"> 

   <p>Page content goes here.</p> 

  </div><!-- /content -->

 <div data-role="footer">

  <h4>Page Footer</h4>

 </div><!-- /footer -->

 </div><!-- /page -->

</body>

</html>

 

外部页面的链接 External page linking

 

Jquery Mobile会自动构建AJAX驱动的站点和应用。

默认情况下,当你点击了一个指向外部页面(比如:products.html)的链接,JQmoblie的分析链接地址,然后产生一个ajax请求(Hajax),显示一个读取中的提示框。

如果AJAX请求成功,新页面的内容会添加到DOM中,所有MOBILE组件都会自动初始化,所以新的页面会通过页面转场动画看到。

如果AJAX请求失败,JQmoblie会显示一个小错误提示框(默认的主题为E),然后过一会就消失了,不会影响你继续浏览。

多个页面的模板结构 Multi-page template structure

 

一个独立的html文件可以包含多个“pages”,在加载的时候这些data-role="page" 的div会一起堆栈加载。每一个page区块需要由一个独特的ID(id="foo")标记,通过 给内部链接地址定义为(herf="#foo"),互相跳转。当连接被点击时,JQmoblie会在 文档内寻找带有ID的page容器,然后通过页面转场显示。

这是一个包含 2个“page”的站点的示例,通过每个页面的ID进行连接。注意每个 page容器的ID属性只是用来做内部连接导航的,如果每一个PAGE都是一个独立的 HTML文件的话,那这个ID属性就可有可无了。

<body>

<!-- Start of first page -->

<div data-role="page" id="foo">

   <div data-role="header">

     <h1>Foo</h1>

   </div><!-- /header -->

   <div data-role="content"> 

     <p>I'm first in the source order so I'm shown as the page.</p> 

     <p>View internal page called <a href="#bar">bar</a></p> 

  </div><!-- /content -->

  <div data-role="footer">

    <h4>Page Footer</h4>

  </div><!-- /footer -->

  </div><!-- /page -->

<!-- Start of second page -->

  <div data-role="page" id="bar">

  <div data-role="header">

   <h1>Bar</h1>

 </div><!-- /header -->

  <div data-role="content"> 

   <p>I'm first in the source order so I'm shown as the page.</p> 

   <p><a href="#foo">Back to foo</a></p> 

 </div><!-- /content -->

 <div data-role="footer">

  <h4>Page Footer</h4>

 </div><!-- /footer -->

 </div><!-- /page -->

</body>

请注意:我们对于所有AJAX的"page"使用的是哈希值来跟踪导航历史,所以现在还不可以通过外部页面的一个ID指向那一个锚点,因为Jquery Mobile会寻找带有该ID的"page",而不是滚屏到带有该ID的内容上。

一些约定,不是要求  Conventions, not requirements

 

尽管上述的页面结构是通过jQuery Mobile构建移动网站的标准格式,但是jqm框架 是一个灵活的框架。page, header, content, and footer和data-role元素都是可 选的。 page 容器用来进行页面初始化,但是现在的版本对于单独的page 文档也不 是必须的。对于一个自定义布局的页面,所有的这些结构元素都可以没有,但是基 于AJAX的导航和组件都必须在标准的结构中才能工作。如果页面没有page 容器, jqm会自动插入一个,因为需要这样一个容器来管理页面,但是基本的标记现在可以 写的非常简单了。

注意:在多PAGE的结构中,你在页面必须要有多个page标签的容器。

 

后退链接 Back linking

 

如果你添加了data-rel="back"属性给某个链接,那对于该链接的任何点击行为,都是后退的行为,会无视链接的herf,后退到浏览器历史的上一个地址。 当想链接到一个命名好的页面,或者要关闭对话框时特别有用。使用这一特性时要注意:务必请使用一个有意义的herf值实际地指向要引用的地址(因为这样也会让GRADE-C的浏览器也支持这个按钮)。而且如果你只是要看到一个翻转的页面转场而不是真正的回到上一个历史记录的地址,你就要使用data-direction="reverse"属性,而不是后退链接。

重定向以及链接到目录 Redirects and linking to directories

 

当连接到的是一个目录地址(比如href="typesofcats/"而不是href="typesofcats/index.html"),你必须在地址后面加一个斜杠("/")。因为Jquery Mobile假定最后一个斜杠后的部分为文件名,当接下来引用到的页面生成基地址的会的时候会删除它。

但是,你可以通过已经指定好的data-url地址来返回到上一个page容器,就可以绕过这一个问题。Jquery Mobile 会使用那个data-url值来更新url,来替代过去请求的那个页面 。这样你也允许你通过返回url的更改来作为重定向的结果。例如:你想通过post方式提交表单到 /login.html",但是提交成功以后返回一个url为 "/account 。这个工具就可以让你在这种情况下控制历史记录堆栈。以下是一个实例:

有一个链接是指向  "docs-links-urltest/index.html" ,该链接是指向目录的索引页,返回的页面会使用 "docs/pages/docs-links-urltest/" 更新哈希值,这是通过代码里的 data-url 值完成的。请注意data-url值会替换整个哈希值,由你来把他替换成当刷新或者下层链接时URL发出的请求能解析正确的页面.

更多技术细节请参见导航模型Ajax, hashes and history

那些年我们用过的互联网产品 QQ亿级业务演变:从文件、音视频说起 少年企鹅的成长之旅:QQ体验设计发展史 全球超算Top 500:Linux已占93.8%,Windows或将消失 AWS东部地区再次发生宕机 Netflix等网站受影响 2012年全球最美的十个数据中心 CodeCards:程序员电子贺卡DIY项目 微软首席战略官Craig Mundie将于2014年退休 LG明年CES展新款智能电视 增强自然语言识别 微软包嘉峰:企业用户向Windows 8迁移加速 2013年10个科技预测 三维打印技术将成主流 能省电99.96%:微软开发基于云的GPS技术 十个最有用的云数据库 开源产品系列:企业级Web框架web2py 让针对Webkit优化的网站兼容WP8 IE10 CMDN Club 24期:互联网产品的演进之路——从QQ谈互联网14年进化史 360安全浏览器发布“照妖镜”和“网站名片”功能 Windows Server 2012实用教程:添加Hyper-V管理器 为何Google弃置GCE和GAE选择AWS? 2012移动应用盘点:乱象丛生 最佳与奇葩共舞 从1976至2013大事记,看Android未来命运 c#经典入门视频001基础知识-苏坤老师主讲 c#经典入门视频002学习两句话-苏坤老师主讲 c#经典入门视频003基础知识-苏坤老师主讲 回顾HTML5这一年:在痛并快乐中前进 学Apple,微软宣布2013上半年零售店建设计划 真羡慕他们:谷歌宣布Gmail电话明年继续免费 c#经典入门视频004变量-苏坤老师主讲 c#经典入门视频005变量的使用和命名规则-苏坤老师主讲 c#经典入门视频006输出变量的值(及赋值符、连接符、占位符)-苏坤老师主讲 c#经典入门视频007变量交换_输入-苏坤老师主讲 昨天,公司通知我晉升,老丈人讓我去見她,第一次,雙喜臨門,散分!!! 看看我们昨天晚上怎么过的中秋吧 拼音模糊查询 XP下断开连接了,怎么总是不断自动拨号啊。 螺旋藻能防辐射,你知道么,给说说吧,有分送 servlet如何实现对文件的删除? 请教PWM DsgnIntf的问题 请问如何让自己的服务可以早点启动(普通服务,不是驱动服务)? 程序员的女人 请教一道网设的题目 请大家介绍几个热门的英文讨论的技术网站给我。 请教一个抽象类的问题 如何在dataset.tabel中将两个表能过双方的两个字段建议关系 高分求高手:jsp中如何获得服务器的网卡地址? 新手,请教C#入门 如何将列表框中所有的值都显示出来,不要有滚动条! 系统软件谁居第一 新人“ gxlxwp1982(我爱Delphi,就像老鼠爱大米)”来了,以后大家多帮忙!!!!1 使用Access数据库的SQL语句问题请教!!!! 谁有软件技术测试报告?给我一份参考一下啦~~~ : [求助]请各位帮帮忙呀! weblogic7.0的端口问题 如何在一个form中使用另一个form? win2kp 如何恢复丢失的桌面? 80年出生的都在干什么? SQL Server7.0升级到SQL Server2000 急需winsock2.h文件 delphi开发的程序在WIN2000,WINXP下运行正常,在WIN98却不行,是怎么回事? 如何在TOMCAT下重定向服务器不存在文件的错误页面 关于JFileChooser中的新建文件夹问题? 请问哪里有sun j2ee 服务器参考实现的源程序下载 今年一定考C++吗 考几道C语言的题目啊~~~~~~~~~~~~ VB调用COM接口,出现类型不匹配,如何解决? 关于拷贝构造函数,诡异。。。 如何使窗体永远在所有窗口的最前面! vsftpd 是配好了,但是登陆不上去 请问如何编程以其他用户的身份来运行一个程序? 我在同一ASMX文件中在某个WebMethod中调用其它的WebMethod出错,说不支持关键字“provider” 100分求进、销、存类程序源码 各位,请教一数据访问时间问题 七天七世纪 希望顶级高手能进来-->用streamReader的ReadLine读中文文件时出现乱码! 扩充话题 灌水乐园 与 程序人生 这两个版面在主题上有什么区别? 大家好阿,哪里有 WINDOWS XP操作系統下載,謝謝,最好不要激活, Webserver在引用时候怎样才能引用他的属性如: 来者有分,小问题 如何在自已的DNS服务器上解析两个不同的域名! 替换一个表中的数据的SQL怎么写 请问微星845GLM 如何实现usb启动 固若金汤反义成语 楚王好细腰选自哪?作者是谁? 作家是谁,选自什么 不求甚解选自哪里,作者是谁 in place of/instead of有区别吗?帮我看个句子,为什么不用in place ofOne day,Mr White was ill in bed,and couldn't work.A young officer,Mr Hunt,came to train the new soldiers____him.这是完形里的,选项中有instead of 和in place of, 为什么人们都在骂火星文输入法?有人说火星文侮辱中国文字 我真搞不懂 火星文只是繁体字的错别字 怎么会侮辱中国文字里?再说 我们又没骂中国文字 我们也没说非要把中国文字改乘火星文 we wspent timeith a girl called Vivien.我记得好像是called Vivien作什么语,对gril进行修饰. 第3小题! 第(3)小题 求第3小题 庆亲王奕劻结局如何? “窃听门”在哪里刺伤了美欧关系?中国和塞浦路斯签协定保护文化财产宠物犬被指与主人长得像 日学者称关键JAEA报告称福岛核电站附近森林核辐法国拟试行按剂量出售抗生素以减少药物沙特女性抗议者拟无视政府禁驾令“顶风美称监听欧洲公民的是欧情报机构 美只美科学家称“亚洲鲤鱼”大量繁殖威胁当中国军舰经与那国岛毗邻区返航 日防相意大利比萨斜塔修复见成效 12年扶正欧洲风暴肆虐 高校推风暴命名项目收费劳动者本色马龙首度男单封王中年爱情张杰:感谢伤害我的人明星主持人带你去旅游天气预报 你听得懂多少?泰南惊现“人蛇”乱坟堆 警方共找到2马龙首度男单封王我们的幸福年代广汽传祺首届服务技能大赛广州收官“英国式让座”让给最需之人邪武帝尊大小姐的贴身家教网游之秩序神殿风叱天下御魔道霸世狂仙女总裁的特种保安亡灵阶梯末世之灯焚造吉重生之绝色军娘清宫熹妃传哈尔滨市儿童公园旅游徽商大宅院旅游胜利公园旅游中华全国总工会旧址旅游团一大广场旅游接官亭旅游药洲遗址旅游广州公社旧址旅游广州原点旅游仙螺岛游乐中心旅游梅溪湖公园旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘