Jquery mobile学习教程之Jquery mobile 二 页面结构

一时失言乱红尘 2023-10-16 19:32 81阅读 0赞



Jquery Mobile基本框架

在jQuery Mobile中,有一个基本的页面框架模型,就是在页面中通过将一个

标记的“data-role”属性设置为“page”,形成一个容器或视图;而在这个容器中最直接的子节点应该就是“data-role”属性为“header”、“content”、“footer”3个子容器,分别形成了“标题”、“内容”、“页脚”3个组成部分,用于容纳不同的页面内容。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>jQuery Mobile基本页面结构</title>
  5. <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css"/>
  6. <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script>
  7. <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script>
  8. </head>
  9. <body>
  10. <div data-role="page" id="home">
  11. <div data-role="header">
  12. <h1>Header</h1>
  13. </div>
  14. <div data-role="content">
  15. <p>Content goes here</p>
  16. </div>
  17. <div data-role="footer">
  18. <h4>Footer</h4>
  19. </div>
  20. </div>
  21. </body>
  22. </html>

源码分析:

为了更好的支持Html5的新属性和功能,第一行以HTML5的声明文档开始,即添加如下代码:

  1. <!DOCTYPE html>

在元素中添加一个名称为”viewport”的元素,并设置该元素的”content”属性,代码如下所示:

Center

这行代码的功能是:设置移动设备中浏览器缩放的宽度和等级。通常情况下,移动设备的浏览器默认以900px的宽度 显示页面,这种宽度会导致屏幕缩小,页面放大,不适合浏览。如果在页面添加元素并设置”content”的属性值为“width=device-width.initial-scae=1”,可以使页面的宽度与移动设备的屏幕宽度相等更加适合用户浏览。

Jquery Mobile多页面容器框架

在一个供jQuery Mobile使用的HTML页面中,可以包含一个元素属性“data-role”值为“page”的容器,也允许包含多个,从而形成多容器页面结构。容器之间各自独立,拥有唯一的Id号属性。页面加载时,以堆栈的方式同时加载;容器访问时,以内部链接“#” 加对应“Id”的方式进行设置。单击该链接时,jQuery Mobile 将在页面文档寻找对应Id号的容器,以动画效果切换至该容器中,实现容器间内容的访问。

  1. <!DOCTYPE html>
  2.   <html>
  3.   <head>
  4.   <title>jQuery Mobile 多容器页面结构</title>
  5.   <meta name="viewport" content="width=device-width,
  6.   initial-scale=1" />
  7.   <link href="Css/jquery.mobile-1.0.1.min.css"
  8.   rel="Stylesheet" type="text/css" />
  9.   <script src="Js/jquery-1.6.4.js"
  10.   type="text/javascript"></script>
  11.   <script src="Js/jquery.mobile-1.0.1.js"
  12.   type="text/javascript"></script>
  13.   </head>
  14.   <body>
  15.   <div data-role="page">
  16.   <div data-role="header"><h1>天气预报</h1></div>
  17.   <div data-role="content">
  18.   <p><a href="#w1">今天</a> | <a href="#">明天</a></p>
  19.   </div>
  20.   <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>
  21.   </div>
  22.   <div data-role="page" id="w1" data-add-back-btn="true">
  23.   <div data-role="header"><h1>今天天气</h1></div>
  24.   <div data-role="content">
  25.   <p>4~-7℃<br />晴转多云<br />微风</p>
  26.   </div>
  27.   <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>
  28.   </div>
  29.   </body>
  30.   </html>

效果截图:

Center 1

源码分析:

在本实例页面中,从第一个容器切换至第二个容器时,采用的是“#”加对应“Id”的内部链接方式。因此,在一个页面中,不论相同框架的“page”容器有多少,只要对应的Id号唯一,就可以通过内部链接的方式进行容器间的切换。在切换时,jQuery Mobile会在文档中寻找对应“Id”的容器,然后通过动画的效果切换到该页面中。

从第一个容器切换至第二个容器后,如果想要从第二个容器返回第一个容器,有下列两种方法:

在第二个容器中,增加一个元素,通过内部链接“#”加对应“Id”的方式返回第一个容器。

在第二个容器的最外层框架

元素中,添加一个“data-add-back-btn”属性。该属性表示是否在容器的左上角增加一个“回退”按钮,默认值为“false”;如果设置为“true”,将出现一个“back”按钮,单击该按钮,回退上一级的页面显示。

说明 如果是在一个页面中,通过“#”加对应“Id”的内部链接方式,可以实现多容器间的切换;但如果不是在一个页面,此方法将失去作用。因为在切换过程中,先需要找到页面,再去锁定对应“Id”容器的内容,而并非直接根据“Id”切换至容器中。

Jquery Mobile 外部页面链接框架

虽然在一个页面中,可以借助容器的框架实现多种页面的显示,但是,把全部代码写在一个页面中会延缓页面被加载的时间,使代码冗余,且不利于功能的分工与维护的安全性。因此,在jQuery Mobile中,可以采用开发多个页面并通过外部链接的方式,实现页面相互切换的效果。下面通过一个简单的实例来介绍它是如何实现的。

  1. <!DOCTYPE html>
  2.   <html>
  3.   <head>
  4.   <title>jQuery Mobile 外部页面链接</title>
  5.   <meta name="viewport" content="width=device-width,
  6.   initial-scale=1" />
  7.   <link href="Css/jquery.mobile-1.0.1.min.css"
  8.   rel="Stylesheet" type="text/css" />
  9.   <script src="Js/jquery-1.6.4.js"
  10.   type="text/javascript"></script>
  11.   <script src="Js/jquery.mobile-1.0.1.js"
  12.   type="text/javascript"></script>
  13.   </head>
  14.   <body>
  15.   <div data-role="page">
  16.   <div data-role="header"><h1>天气预报</h1></div>
  17.   <div data-role="content">
  18.   <p><a href="#w1">今天</a> | <a href="#">明天</a></p>
  19.   </div>
  20.   <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>
  21.   </div>
  22.   <div data-role="page" id="w1" data-add-back-btn="true">
  23.   <div data-role="header"><h1>今天天气</h1></div>
  24.   <div data-role="content">
  25.   <p>4~-7℃<br />晴转多云<br />微风</p>
  26.   <em style="float:right;padding-right:5px">
  27.   <a href="about.htm">rttop.cn</a>提供
  28.   </em>
  29.   </div>
  30.   <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>
  31.   </div>
  32.   </body>
  33.   </html>

 另外,新建一个用于外部链接的HTML 页面about.htm,加入以下代码:

  1.  <!DOCTYPE html>
  2.   <html>
  3.   <head>
  4.   <title>关于rttop</title>
  5.   <meta name="viewport" content="width=device-width" />
  6.   </head>
  7.   <body>
  8.   <div data-role="page" data-add-back-btn="true">
  9.   <div data-role="header"><h1>关于rttop</h1></div>
  10.   <div data-role="content">
  11.   <p>
  12.   rttop.cn是一家新型高科技企业,正在努力实现飞翔的梦想。
  13.   </p>
  14.   </div>
  15.   <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>
  16.   </div>
  17.   </body>
  18.   </html>

页面效果

Center 2

源码分析:

在jQuery Mobile 中,如果单击一个指向外部页面的超级链接(如about.htm),jQuery Mobile将自动分析该URL地址,自动产生一个AJAX请求。在请求过程中,会弹出一个显示进度的提示框。如果请求成功,jQuery Mobile将自动构建页面结构,注入主页面的内容;同时,初始化全部的jQuery Mobile组件,将新添加的页面内容显示在浏览器中;如果请求失败,jQuery Mobile将弹出一个错误信息提示框,数秒后该提示框自动消失,页面也不会刷新。

  如果不想采用AJAX请求的方式打开一个外部页面,只需要在链接元素中将”rel”属性设置为”external”,该页面将脱离整个jQuery Mobile的主页面环境,以独自打开的页面效果在浏览器中显示。

  说明 如果采用AJAX请求的方式打开一个外部页面,注入主页面的内容也是以”page”为目标,”page”以外的内容将不会被注入主页面中;另外,必须确保外部加载页面URL地址的唯一性。

发表评论

表情:
评论列表 (有 0 条评论,81人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jQuery Mobile

    jQuery Mobile是一个基于jQuery Core的触摸友好UI框架,适用于所有流行的移动,平板电脑和桌面平台。 官网:[http://jquerymobile.co