小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载四(场景切换)...

作为一款真正有使用价值的应用,首先应该至少有两个页面,通过页面的切换来实现更多的交互。比如手机人人网,打开以后先是进入登录页面,登录后会有新鲜事,然后拉开左边的面板,能看到相册、悄悄话、应用之类的其他内容。

在jQuery Mobile中页面的切换是通过链接来实现的,这点跟HTML完全一样。有所不同的是,jQuery Mobile为了使开发者能够创造出能好的交互性,提供了10种不同的切换效果。下面来看一个例子:

【范例4-4  jQuery Mobile中的场景切换】

  1. <!DOCTYPE>  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <meta name="viewport" content="width=device-width,initial-scale=2">  
  6. <title>页面间的切换</title>  
  7. <link rel="stylesheet" href="jquery.mobile-1.0.min.css" />  
  8. <script src="jquery-1.7.1.min.js"></script>  
  9. <script src="jquery.mobile-1.1.1.min.js"></script>   
  10. <!--<script type="text/javascript" src="cordova.js"></script>-->  
  11. </head>  
  12. <body>  
  13.     <div data-role="page">  
  14.         <!—使用默认切换方式,效果为渐显-->  
  15.         <href="demo.html" data-role=”button”>页面间的切换</a>  
  16.         <!-- data-transition="fade" 定义切换方式渐显-->  
  17.          <data-role=”button” href="demo.html" data-transition="fade" data-direction="reverse">fade</a>  
  18.         <!-- data-transition="pop" 定义切换方式扩散-->  
  19.             <data-role=”button” href="demo.html" data-transition="pop" data-direction="reverse">pop</a>  
  20.         <!-- data-transition="flip" 定义切换方式展开-->  
  21.         <data-role=”button” href="demo.html" data-transition="flip" data-direction="reverse">flip</a>  
  22.         <!-- data-transition="turn" 定义切换方式翻转覆盖-->  
  23.          <data-role=”button” href="demo.html" data-transition="turn" data-direction="reverse">turn</a>  
  24.         <!-- data-transition="flow" 定义切换方式扩散覆盖-->  
  25.              <data-role=”button” href="demo.html" data-transition="flow" data-direction="reverse">flow</a>  
  26.         <!-- data-transition="slidefade" 定义切换方式滑动渐显-->  
  27.         <data-role=”button” href="demo.html" data-transition="slidefade" >slidefade</a>  
  28.         <!-- data-transition="slide" 定义切换方式滑动-->  
  29.          <data-role=”button” href="demo.html" data-transition="slide" data-direction="reverse">slide</a>  
  30.         <!-- data-transition="slidedown" 定义切换方式向下滑动-->  
  31.         <data-role=”button” href="demo.html" data-transition="slidedown" >slidedown</a>  
  32.         <!-- data-transition="slideup"  定义切换方式向上滑动-->  
  33.         <data-role=”button” href="demo.html" data-transition="slideup" >slideup</a>  
  34.         <!-- data-transition="none"  定义切换方式“无”-->  
  35.         <data-role=”button” href="demo.html" data-transition="none" data-direction="reverse">none</a>  
  36.     </div>  
  37. </body>  
  38. </html>  

 除此之外,还需要另外一个页面demo.html:

  1. <!DOCTYPE>  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <meta name="viewport" content="width=device-width,initial-scale=2">  
  6. <title>无标题文档</title>  
  7. <link rel="stylesheet" href="jquery.mobile-1.0.min.css" />  
  8. <script src="jquery-1.7.1.min.js"></script>  
  9. <script src="jquery.mobile-1.1.1.min.js"></script>   
  10. <!--<script type="text/javascript" src="cordova.js"></script>-->  
  11. </head>  
  12. <body>  
  13.     <div data-role="page">  
  14.            <h1>快到我碗里来</h1>  
  15.     </div>  
  16. </body>  
  17. </html>  

 

运行效果如图4-4、图4-5所示。

 

图4-4                                                 图4-5

上例中第14~24行实际上在做同一件事情,即实现从index.html页面到demo.html页面的切换。在这里特别对这10种切换效果做一个简短的说明:

<a href="demo.html" data-role=”button”>页面间的切换</a>

可以清楚的看到demo.html页面有一个渐显的动画效果。

<a data-role=”button” href="demo.html"data-transition="fade" data-direction="reverse" >fade</a>

运行后发现与不加入data-transition属性的效果相同,也就是说,在jQuery Mobile中,将会默认给转场加入渐显渐隐的动画效果。

<a data-role=”button” href="demo.html"data-transition="pop" data-direction="reverse" >pop</a>

demo页面在原页面的中央部分渐渐变大最终覆盖整个页面。

<a data-role=”button” href="demo.html"data-transition="flip" data-direction="reverse" >flip</a>

demo页面在原页面中央最初以一个竖条的方式出现,先向两端扩张,当放大到正常页面比例后渐渐变大,直至覆盖整个页面。

<a data-role=”button” href="demo.html"data-transition="turn" data-direction="reverse" >turn</a>

demo页面在原页面中央最初以一个竖条的方式出现纵向进行翻转后放大到覆盖整个页面。

<a data-role=”button” href="demo.html"data-transition="flow" data-direction="reverse" >flow</a>

demo页面在原页面中央部分渐渐变大并逐渐覆盖整个页面,同时可以看见原页面逐渐缩小直至完全被triansitions2覆盖。

<a data-role=”button” href="demo.html"data-transition="slidefade" data-direction="reverse" >slidefade</a>

demo页面在原页面右侧出现,移动至中心,并在这一过程中渐显。

<a data-role=”button” href="demo.html"data-transition="slide"  data-direction="reverse">slide</a>

demo页面在原页面右侧出现,移动至中心。

<a data-role=”button” href="demo.html"data-transition="slideup" data-direction="reverse" >slideup</a>

demo页面在原页面下方出现,并向上移动至中心。

<a data-role=”button” href="demo.html"data-transition="slidedown" data-direction="reverse" >slidedown</a>

demo页面在原页面上方出现,并向下移动到中心。

<a data-role=”button” href="demo.html"data-transition="none" data-direction="reverse" >none</a>

没有任何效果。

    注意:在以上的10种动画中,除了fade与none两种效果是所有浏览器均支持的,其他8种效果的实现均需要依赖于设备浏览器具有3D支持。因此,对于android 2.Xs设备来说,许多效果是无效的,这时系统会默认将切换效果转换为渐显。还有一些设备虽然能够实现这些效果,但由于硬件本身限制,在实现这些效果时会在结束时产生卡顿以及页面闪烁的问题。因此开发者在使用这些效果时要特别谨慎,好在随着技术的提高,不兼容这些效果的设备最终会退出我们的视野,这对开发者来说是一个好消息。

在jQuery Mobile的官方文档中给出了一种应对不兼容情况的方法,即在CSS文件中加入这样一句代码,经笔者实验,确实能够在一定程度上,解决切换时的屏闪问题。

.ui-page {-webkit-backface-visibility: hidden; }

但是要想真正从根本上解决页面切换时闪屏的问题,还只能依靠硬件的发展,笔者一直坚信这一天很快就会到来。

 

 

jQueryMobile可用度越来越高,入门门槛低,可以少写代码来生成移动设备友好的界面。《构建跨平台APP:jQuery Mobile移动应用实战》这本书采用实例驱动的方式介绍jQueryMobile下的APP开发,全书提供70余个实战案例教会读者进行移动开发,最后还通过6个小型项目来复习和巩固所学知识点。

转载于:https://www.cnblogs.com/aspnet008/p/3875625.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql学习总结(12)——21分钟Mysql入门教程

21分钟 MySQL 入门教程 目录 一、MySQL的相关概念介绍二、Windows下MySQL的配置 配置步骤MySQL服务的启动、停止与卸载三、MySQL脚本的基本组成四、MySQL中的数据类型五、使用MySQL数据库 登录到MySQL创建一个数据库选择所要操作的数据库创建数据库表六、操作MySQL数据库 向表中…

java 队列实例_Java 实例 - 队列(Queue)用法

全屏Java 实例 - 队列(Queue)用法队列是一种特殊的线性表&#xff0c;它只允许在表的前端进行删除操作&#xff0c;而在表的后端进行插入操作。LinkedList类实现了Queue接口&#xff0c;因此我们可以把LinkedList当成Queue来用。以下实例演示了队列(Queue)的用法&#xff1a;Ma…

@Html辅助方法

Html.LabelFor(m > m.UserName, new { class "col-md-2 control-label" })LabelFor使用了模型类中相应的DisplayName属性Html.ValidationSummary(true, "", new { class "text-danger" })验证消息的显示有两种&#xff0c;一种是Validation…

PrintJ的设计模式之旅——1.模式之父

好奇设计模式的源头&#xff0c;做了一番搜索和调查&#xff0c;于是便开启了这个系列“PrintJ的设计模式之旅”。 1.模式之父 GOF&#xff08;Gang of Four&#xff09; Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides合著了"Design Patterns: Elements of…

iOS 添加导航栏两侧按钮

self.navigationItem.leftBarButtonItem [[UIBarButtonItem alloc] initWithTitle:"首页" style:UIBarButtonItemStyleBordered target:self action:selector(popToRootView)] ;self.navigationItem.rightBarButtonItem [[UIBarButtonItem alloc] initWithTitle:&q…

java 1.6 ubuntu_ubuntu配置 Java SE 1.6

今天编译android 4.0时提示如下错误&#xff1a;You are attempting to build with the incorrect version of java.Your version is: java version "1.6.0_22".The correct version is: Java SE 1.6.查了一下现在已安装的java&#xff1a;java -versionjava version…

微信小程序 功能函数 把数字1,2,3,4换成春,夏,秋,冬

let season ‘1,2,3’;// console.log(season.length)if (season){if (season.length1){seasonChe1season.substr(0);seasonChe1 parseInt(seasonChe1)switch (seasonChe1) {case 1:(function(){seasonChe2春})()break;case 2:(function () {seasonChe2 夏})()break;case 3:(…

UVa 11549 Calculator Conundrum

大白书里面的题感觉就是没有什么固定的思路&#xff0c;只能认真理解学习汝佳大大的代码。 这里用的Floyd判圈法&#xff0c;就像插图里面的一样&#xff0c;两个小孩&#xff0c;一个快一个慢&#xff0c;如果实在一个环形跑道&#xff0c;那么快的那个最终一定会“追上”慢的…

servlet与MySQL商品管理系统_servlet和mysql实现宿舍管理系统

【实例简介】servlet mysql实现的宿舍管理系统&#xff0c;以及各个功能的视频录像【实例截图】【核心代码】Sushem└── Sushem├── kk 录像│ └── kk 2017-11-13 17-11-38.avi└── Sushem├── src│ ├── dao│ │ ├── BaoxiuDao.java│ │ ├──…

几个性能测试工具

我个人认为一个优秀的软件工程师必须掌握一定的测试技能。可能有的开发工程师认为测试是测试工程师的事情&#xff0c;不是开发工程师的事情。这种开发工程师是缺一条腿的&#xff0c;离开了测试工程师&#xff0c;你如何证明你的程序没有问题。 下面是我这两天搜集的性能测试工…

Bootstrap页面布局14 - BS按钮群组

首先看看这个代码&#xff1a; <div classbtn-group><button typebutton classbtn>计算机</button><button typebutton classbtn>网络</button><button typebutton classbtn>桌面项目</button> </div> 将功能相近的按钮分成一…

type const mysql_Mysql Explain之type详解

select version()&#xff1a;5.7.21MySQL 提供了一个 EXPLAIN 命令, 它可以对 SQL 语句进行分析, 并输出 SQL 执行的详细信息, 以供开发人员针对性优化.例如分析一条 SELECT 语句EXPLAIN 结果中的type字段Tips&#xff1a;常见的扫描方式system&#xff1a;系统表&#xff0c;…

Android Intent传递数据

刚开始看郭大神的<>,实现以下里面的一些例子.Intent传递数据. 我们利用显示的方式进行Intent的启动. 1.启动intent并输入数据. Intent intentnew Intent(MainActivity.this,TwoActivity.class);intent.putExtra("data", "hello two");startActivity(…

WCF中的标准绑定

使用过WCF的童鞋们都很清楚&#xff0c;绑定是必须的。我将这些绑定总结了下。 一、标准绑定简要说明 1.basicHttpBinding基于WS-I Basic Profile 1.1 的web服务,所需的.Net Framework版本为 3.0 以上。 2.wsHttpBinding针对改进的web服务的绑定,包括WS-Security,WS-Transactio…

PM2.5空气质量指数(AQI)是如何计算的

源&#xff1a;PM2.5空气质量指数(AQI)是如何计算的 阅读目录 AQI如何计算  空气污染指数分级标准AQI如何计算 具体要计算PM2.5空气质量指数(AQI)&#xff0c;SENBE申贝技术人员向您介绍如何计算的公式。比如当实测浓度小于等于0.035时&#xff0c;根据实测浓度50/0.035计算。…

C++对于大型图片的加载缩放尝试

Qt对于图片的操作主要集中在这几个类 QImage ,QImageReader ,QPixmap 其中QImage这个类对图片的缩放有几个很不错的技巧&#xff0c;不过对于大图片却并不好使&#xff0c;当我们去看QImage的实现代码时&#xff0c;会发现其中读取QImageReader来加载图片&#xff0c;当我们去看…

PHP移动互联网开发笔记(3)——运算符

一、PHP的运算符PHP中有丰富的运算符集&#xff0c;它们中大部分直接来自于C语言。按照不同功能区分&#xff0c;运算符可以分为&#xff1a;算术运算符、字符串运算符、赋值运算符、位运算符、条件运算符&#xff0c;以及逻辑运算符等。当各种运算符在同一个表达式中时&#x…

xadmin与mysql数据库_十八、Django3.0学习之引入xadmin

一、将xadmin导入Django工程中1.1 xadmin下载地址&#xff1a; https://github.com/sshwsfc/xadmin/tree/django2或者&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1VJPsN5GOW_xbiPb8t43oRg提取码&#xff1a;nkei1.2 下载压缩包1.3 到zip目录下&#xff0c;进行pip3 …

WebApi个人理解概要

WebApi概要Global文件的作用&#xff1a; 12345678910111213141516public class MvcApplication : System.Web.HttpApplication{protected void Application_Start(){//1.注册区域路由AreaRegistration.RegisterAllAreas();//2.注册webApi的路由WebApiConfig.Register(GlobalCo…

帮 C/C++ 程序员彻底了解链接器

为什么80%的码农都做不了架构师&#xff1f;>>> http://blog.jobbole.com/96225/ 转载于:https://my.oschina.net/lieefu/blog/547083