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

2023-11-08


Jquery Mobile基本框架

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

标记的“data-role”属性设置为“page”,形成一个容器或视图;而在这个容器中最直接的子节点应该就是“data-role”属性为“header”、“content”、“footer”3个子容器,分别形成了“标题”、“内容”、“页脚”3个组成部分,用于容纳不同的页面内容。
<!DOCTYPE html>
<html>
    <head>
        <title>jQuery Mobile基本页面结构</title>
        <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>
        <div data-role="page" id="home">
            <div data-role="header">
                <h1>Header</h1>
            </div>
            <div data-role="content">
                <p>Content goes here</p>
            </div>
            <div data-role="footer">
                <h4>Footer</h4>
            </div>
        </div>
    </body>
</html>


源码分析:

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

<!DOCTYPE html>

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

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


Jquery Mobile多页面容器框架

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

<!DOCTYPE html>

  <html>

  <head>

  <title>jQuery Mobile 多容器页面结构</title>

  <meta name="viewport" content="width=device-width,

  initial-scale=1" />

  <link  href="Css/jquery.mobile-1.0.1.min.css"

  rel="Stylesheet" type="text/css" />

  <script src="Js/jquery-1.6.4.js"

  type="text/javascript"></script>

  <script src="Js/jquery.mobile-1.0.1.js"

  type="text/javascript"></script>

  </head>

  <body>

  <div data-role="page">

  <div data-role="header"><h1>天气预报</h1></div>

  <div data-role="content">

  <p><a href="#w1">今天</a> | <a href="#">明天</a></p>

  </div>

  <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>

  </div>

  <div data-role="page" id="w1" data-add-back-btn="true">

  <div data-role="header"><h1>今天天气</h1></div>

  <div data-role="content">

  <p>4~-7℃<br />晴转多云<br />微风</p>

  </div>

  <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>

  </div>

  </body>

  </html>


效果截图:

源码分析:

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


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


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


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


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



Jquery Mobile 外部页面链接框架

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

<!DOCTYPE html>

  <html>

  <head>

  <title>jQuery Mobile 外部页面链接</title>

  <meta name="viewport" content="width=device-width,

  initial-scale=1" />

  <link  href="Css/jquery.mobile-1.0.1.min.css"

  rel="Stylesheet" type="text/css" />

  <script src="Js/jquery-1.6.4.js"

  type="text/javascript"></script>

  <script src="Js/jquery.mobile-1.0.1.js"

  type="text/javascript"></script>

  </head>

  <body>

  <div data-role="page">

  <div data-role="header"><h1>天气预报</h1></div>

  <div data-role="content">

  <p><a href="#w1">今天</a> | <a href="#">明天</a></p>

  </div>

  <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>

  </div>

  <div data-role="page" id="w1" data-add-back-btn="true">

  <div data-role="header"><h1>今天天气</h1></div>

  <div data-role="content">

  <p>4~-7℃<br />晴转多云<br />微风</p>

  <em style="float:right;padding-right:5px">

  <a href="about.htm">rttop.cn</a>提供

  </em>

  </div>

  <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>

  </div>

  </body>

  </html>

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

 <!DOCTYPE html>

  <html>

  <head>

  <title>关于rttop</title>

  <meta name="viewport" content="width=device-width" />

  </head>

  <body>

  <div data-role="page" data-add-back-btn="true">

  <div data-role="header"><h1>关于rttop</h1></div>

  <div data-role="content">

  <p>   

  rttop.cn是一家新型高科技企业,正在努力实现飞翔的梦想。

  </p>

  </div>

  <div data-role="footer"><h4>2012 rttop.cn studio</h4></div>

  </div>

  </body>

  </html>



页面效果


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jquery mobile学习教程之Jquery mobile 二 页面结构 的相关文章

  • ➹使用webpack配置多页面应用(MPA)

    使用webpack配置MPA 为什么需要使用 webpack 构建多页应用呢 因为某些项目使用 SPA 不太合适 大多是 SEO 的原因 或者您在做项目时有其他的需求 如果你有如下需求 使用 ES6 进行开发 期望使用面向对象开发 clas
  • java 文件备注_JAVA 文档注释

    JAVA文档注释 一JAVA注释类型 Java注释分为三类 1单行注释 2多行注释 3文档注释 单行注释多行注释 主要用于代码辅助性的说明便于理解代码的逻辑 文档注释 主要用生成API文档 二文档注释类型 文档注释紧挨类方法属性前面放置否则
  • Kyligence Zen产品体验——一站式指标平台泰酷辣~

    文章目录 一 前言 二 为什么需要指标化平台 三 什么是Kyligence Zen 四 Kyligence Zen新特性 五 Kyligence Zen注册篇 六 Kyligence Zen体验篇 七 Kyligence Zen实战篇 7
  • 安卓百度地图开发(三)在定位图层获取指南针角度

    在官方文档中没有给出获取角度的方法 这里使用了安卓自带的传感器获取指南针角度 首先定义传感器和角度 private SensorManager mSensorManager double degree 0 在oncreate方法中初始化传感
  • Xmind使用技巧

    新建图表 根据需求 可新建为空白图表或模板图表 空白图 模板 提高工作效率 其中因果分析 鱼普 图 SWOT分析 比较与对比 读书笔记等常用 也可以新建空白图 改变鱼头的左右方向 相比就是样式没有模板的那么丰富
  • 操作系统 请求分页存储管理

    目录 请求分页存储管理中的页表机制 缺页中断机构 地址转换 页置换算法 页分配和页置换策略 工作集及抖动现象的消除 请求分页存储管理的优缺点 请求分页存储管理中的页表机制 系统需要解决的问题 系统如何获知进程当前所需页面不在主存 当发现缺页
  • 记录一次FISCO BCOS的console启动失败的问题(create BcosSDK failed for the number of available peers is 0)

    记录一次FISCO BCOS的console启动失败的问题 报错 create BcosSDK failed for the number of available peers is 0 版本 FISCO BCOS v2 7 0 conso
  • 新多模态大模型霸榜!支持图文混合输入,不懂知识还能现学

    克雷西 发自 凹非寺量子位 公众号 QbitAI 多模态大模型家族 又有新成员了 不仅能将多张图像与文本结合分析 还能处理视频中的时空关系 这款免费开源的模型 在MMbench和MME榜单同时登顶 目前浮动排名也保持在前三位 MMBench
  • 物联网的应用场景

    随着物联网技术的不断发展和普及 它已经在各个领域展现出了巨大的潜力和前景 下面将会探讨物联网的应用前景 1 智能家居 智能家居是物联网技术最广泛应用的领域之一 通过智能家居设备 人们可以在任何时间 任何地点通过手机 平板电脑等设备远程控制家
  • 深度学习原理分析之数据不足与过拟合

    人们常常知道若干种解决过拟合的方法但不知其因 本文对其进行原理剖析 一个模型所能提供的信息一般来源于两个方面 一是训练数据中蕴含的信息 二是在模型的形成过程中 包括构造 学习 推理等 人们提供的先验信息 当训练数据不足时 说明模型从原始数据
  • Spring Boot官方例子《Developing Your First Spring Boot Application》无法运行

    官方的第一个例子就卡住了 https docs spring io spring boot docs current reference htmlsingle getting started first application 按照要求 一
  • 【消息队列】kafka consumer demo

    package consumer import org apache kafka clients consumer ConsumerConfig import org apache kafka clients consumer Consum
  • git常用命令及免密登录

    常用命令 git config global user name 用户名 设置用户签名 git config global user email 邮箱 设置用户签名 git init 初始化本地库 git status 查看本地库状态 gi
  • 多线程写图像文件的一点小测试(Boost + Gual)

    转载自 http blog csdn net liminlu0314 article details 7420484 在处理遥感图像中 发现往往比较耗时的是在数据的IO中 尤其是在O 写入 的时候更加耗时 GDAL可以支持图像的多线程写入
  • 蓝桥杯——修改数组

    问题描述 给定一个长度为N的数组A A1 A2 AN 数组中有可能有重复出现的整数 在小明要按以下方法将其修改为没有重复整数的数组 小明会依次修改A2 A3 AN 当修改Ai时 小明会检查Ai是否在A1 Ai 1中出现过 如果出现过 则小明
  • C#中的事件和委托_札记1

    C 中的事件和委托 札记1 委托 自定义委托 静态方法 被委托 委托是一种类型 所以任何定义类的地方都可以定义委托类型 自定义委托的基本格式示例如下
  • RobotFramework 安装教程

    动化测试框架 具盘点 安装步骤 页面介绍 标准库 不需要安装 直接 RF 带 扩展库 快捷键 实战 RobotFramework 安装教程 动化测试框架 具盘点 java junit和testng 具 postmen newman git
  • html动态爱心代码【二】(附源码)

    目录 前言 效果演示 内容修改 完整代码 总结 前言 七夕马上就要到了 为了帮助大家高效表白 下面再给大家带来了实用的HTML浪漫表白代码 附源码 背景音乐 可用于520 情人节 生日 表白等场景 可直接使用 效果演示 内容修改 文案 di

随机推荐

  • go - flag包(处理命令行参数小能手)

    前言 在golang中有很多方法来处理命令行参数 简单情况下可以不使用任何库 直接使用os Args 但是golang标准库提供了flag包来专门处理命令行参数 当然还有第三方提供的处理命令行参数的库cobra cli可以参考 flag包绑
  • qt没有mysql驱动的解决办法

    qt没有mysql驱动的解决办法 第一部分 qtcreator上没有mysql驱动的解决办法 第一步 找到你的qt的版本的源码src 第二步 点击mysql pro 电脑会自动打开qtcreater 然后就是进行编译器的选择 我选择的是 在
  • BootStrap的使用

    是别人帮我们已经写好的css样式 我们如果想要使用这个BootStrap 下载BootStrap 使用 在页面上引入BootStrap 自定置 先在网上下载好BootStrap 并导入到Pycharm 引入BootStrap 注意引入的是
  • 【react】文本内容超过一行,显示为单行省略,并且出现icon图标;点击此图标,可以进行展开或收起文本功能实现

    需求 多条数据展示 每条数据的文本内容不超过一行 文本内容为一行时 不显示 展开收起icon图标 文本超过一行时 内容单行省略 并且显示 点击图标 图标切换为收起按钮 后端返回数据 const data name 测试测试测试 time 2
  • BinaryViewer(二进制查看器)使用教程(附下载)

    1 BinaryViewer操作界面 2 面板功能 1 数据面板 此面板占据了屏幕的最中央部分 其目的是顺序显示打开的文件或物理驱动器中的所有数据 此面板通常以两列显示数据 每列都可以按用户选择的格式显示数据 请转到数据显示模式 查看如何更
  • 对indexedDB的一些使用方法

    indexedDB的使用 1 打开数据库和创建数据仓库 createDB function dbName version tableName key cursor callBack 参数为 dbName数据库名 version版本号 tab
  • Python运维开发工程师养成记(while循环语句)

    图示 案例 contine和break用法 无限循环 while else语句 今天分享到这里 喜欢的盆友可以关注一下博主 链接 https ke qq com course 4300856 tuin d8aedf68
  • android 环信集成,Android 环信集成使用总结

    最近因为项目需要 需要集成环信 对于一些账号的注册 配置的添加官方文档上写的都有 就不在记录 就记录一下集成过程中遇到的问题 环信demo中的代码太乱 而且一些功能用不到 我们就移值些自己有用的放到自己的项目中 1 消息监听 环信在收到消息
  • mysql如何查询成绩前5名_sql 语句查询 前5名后5名的成绩

    蝴蝶不菲 两种办法 分别求最大和最小 然后union allselect from select from table order by 成绩 where rownum lt 5union allselect from select fro
  • 每隔5分钟输出最近一小时内点击量最多的前N个商品(SQL实现版)

    代码 package com zjc flow analysis hotitems analysis import org apache flink api common serialization SimpleStringSchema i
  • 智能合约调试指南

    不像你在其他地方看到的纸质合约 以太坊的智能合约是代码组成的 需要你以非常谨慎的态度去对待它 这是一件好事 想象下如果现实世界的合同需要编译的话会更清晰么 如果我们的合同没有被正确的编码出来 我们的交易可能会失败 导致以太币的损失 以 ga
  • 真题详解(Flynn分类)-软件设计(四十六)

    真题详解 计算机总线 软件设计 四十五 https blog csdn net ke1ying article details 130046829 Flynn分类将计算机分为四类 单指令流单数据流机器 SISD 早期的机器 在某个时钟周期
  • C++ 读取结束的判断

    cin 可以用来从键盘输入数据 将标准输入重定向为文件后 cin 也可以用来从文件中读入数据 在输入数据的多少不确定 且没有结束标志的情况下 该如何判断输入数据已经读完了呢 从文件中读取数据很好办 到达文件末尾就读取结束了 从控制台读取数据
  • shell脚本系列:6、shell扩展

    shell脚本系列 6 shell扩展 文章目录 shell脚本系列 6 shell扩展 1 花括号扩展 2 波浪号扩展 3 shell参数扩展 4 命令替换 5 算术扩展 6 进程替换 7 分词 8 文件名扩展 8 1 模式匹配 9 引号
  • 【upload-labs】————8、Pass-07

    闯关界面 前后端检测判断 查看源代码 文件后缀大小写 去除 DATA 关键词过滤 在这里可以发现所有的都考虑到了 但是却没有考虑后缀为 的情况 在windows中PHP会自动去除后缀名中最后的 我们可以通过这种方式来绕过 加 来绕过
  • 探索多线程使用同一个数据库connection的后果

    在项目中看到有用到数据库的连接池 心里就思考着为什么需要数据库连接池 只用一个连接会造成什么影响 只用一个connection 1 猜想 jdbc的事务是基于connection的 如果多线程共用一个connection 会造成多线程之间的
  • C++安装Dlib库教程(保姆级别)以及踩坑指南

    在网上搜索了一圈 发现大家好像都很喜欢使用Python来开发AI 后来我也用了一下Python 发现 emmm 真香 但是我知道一定也有人再使用C 进行开发 那么我就先来说说几种安装Dlib库的方法趴 除了使用vcpkg 我们这次从官网的角
  • 微信小程序自定义底部导航栏

    文章目录 概要 功能 源码 细节 改进 概要 微信小程序自定义底部导航栏 原生实现 不包含其他任何第三方组件 比较干净 开箱即用 效果预览 功能 可自定义底部导航栏列表样式 可自定义每个菜单的默认 激活后的图标和文字样式 可自定义是否添加中
  • 【gitlab项目迁移】

    需求 将gitlab项目从A组迁移到B组 经查 有两种方式 一种是项目在网页压缩后export 再import 另一种是终端操作 但是我的项目分支过多 文件过大 30M左右 方法一会报错文件过大 最后采取方法二 方法1 网页端导入 可以参考
  • Jquery mobile学习教程之Jquery mobile 二 页面结构

    Jquery Mobile基本框架 在jQuery Mobile中 有一个基本的页面框架模型 就是在页面中通过将一个 标记的 data role 属性设置为 page 形成一个容器或视图 而在这个容器中最直接的子节点应该就是 data ro