【App FrameWork】框架的页面布局
之前主要用JqueryMobile+PhoneGap的模式开发移动应用,但JQueryMobile自身存在的硬伤太多,如加载速度缓慢,页面转场白屏、闪烁,头尾部导航浮动问题,页面滚动等等,用户体验效果不太好,从而开始研究一种新的前端框架-App FrameWork,也就是JQ.Mobi。
App FrameWork是基于HTML5重写的jQuery框架,对其进行了简化,更有利于在移动设备上应用,并且速度比较流畅。
App FrameWork官方网站:http://app-framework-software.intel.com/
要使用App FrameWork框架,先引入它的样式和脚本文件:

相对于JqueryMobile用data-role属性来划分导航区、内容区、底部区,这里采用id的方式来标识。
App FrameWork的页面布局:
<body>
<div id="afui">
<!--header头部属于导航栏固定于整个应用的顶部-->
<div id="header">
</div>
<!--content内容区则用于承载应用的不同页面-->
<div id="content">
<div title='AppFrameWork' id="main" class="panel" selected="true">
第一个HTML页面
</div> <div title='Shake' id="ShakePanel" class="panel" data-defer="Pages/Shake.html"></div>
</div>
<!--footer底部区则属于标签栏固定于整个应用的底部,用户可以通过点击不同的标签到达不同的页面。-->
<div id="navbar">
<a href="#main" id='navbar_home' class='icon home pressed'>home</a>
<a href="#ShakePanel" id='navbar_shake' class='icon location'>Shake</a>
</div>
</div>
</body>
应用的导航栏和标签栏,通常都是固定页面的顶部和底部,对于web app布局中由于ios浏览器对于CSS的position:fixed支持很不好,因此通用的解决方案(包括jQ.mobi)都是使用绝对定位position:absolute。
App FrameWork框架页面基本都在同一个HTML文档中,在内容区(#content)里面放置多个class为"panel"的div, 这里每个div即为一个页面。当panel设置selected="true"属性后,在应用打开之后默认加载该页面,其他都是隐藏的(display:none)。这些页面之间通过锚链接来跳转,并将目标页面的display设置为"block",同时给需要隐藏的页面一个向左移动的动画,加之panel页面使用绝对定位,宽度高度均铺满content,这样的跳转就达到了native应用页面切换的效果。在页面切换时,另外的动作就是将panel页面中已经定义的title属性中的值显示到导航中,并可以设置属性data-tab的值来选中对应的标签。
<div title='AppFrameWork' id="main" class="panel" selected="true">第一个HTML页面</div> <a href="#main" id='navbar_home' class='icon home pressed'>home</a>
若页面内容分属于不同的HTML文件,则需要用到panel里面的data-defer属性,设置此属性之后该panel会加载远程的页面或者url。
<div title='Shake' id="ShakePanel" class="panel" data-defer="Pages/Shake.html"></div>
效果图:

如果页面过长会自动出现手势滚动的效果,如上面的第二个页面。
【App FrameWork】框架的页面布局的更多相关文章
- APP界面设计之页面布局的22条基本原则
移动 APP 页面布局(Layout)是我们设计 app 界面的时候,最主要的设计任务.一个 app 的好与不好,很大部分取决于移动 APP 页面布局的合理性. 下图为 APP 最原始的布局模型. 页 ...
- APP界面设计与页面布局的23条基本原则
一个App的好与不好,很大部分取决于移动App页面布局的合理性,优秀的布局顾名思义就是对页面的文字.图形或表格等进行排版.设计. 优秀的布局,需要对页面信息进行完整的考虑,既要考虑用户需求.用户行为, ...
- 移动端--用PX为单位+JS框架 实现页面布局
一:大家先下载metahandler.js 二:准备一个用px实现的移动页面(宽度固定死的页面),引入metahandler.js框架 1.视口设置 width=640,是根据psd图来设置,有多宽设 ...
- [译]App Framework 2.1 (1)之 Quickstart
最近有移动App项目,选择了 Hybrid 的框架Cordova 和 App Framework 框架开发. 本来应该从配置循序渐进开始写的,但由于上班时间太忙,这段时间抽不出空来,只能根据心情和 ...
- 初入APP(结合mui框架进行页面搭建)
前 言 博主最近在接触移动APP,学习了几个小技巧,和大家分享一下. 1. 状态栏设置 现在打开绝大多数APP,状态栏都是与APP一体,不仅美观,而且与整体协调.博主是个中度强迫症患者,顶部那个 ...
- Redesign Your App for iOS 7 之 页面布局【转】
前言 iOS7是目前iOS史上最颠覆的一次改版. 它的出现令人兴奋,因为它将会带我们进入一个全新的时代: 它的到来也让我们忧心,因为它颠覆了一切,包括我们过去做过的很多努力. 但是,相信大家乐意为这个 ...
- Zend Framework 入门(4)—页面布局
Zend Framework 的页面布局模块——Zend_Layout——既可以跟 MVC 一起使用,也可以单独使用.本文只讨论与 MVC 一起使用的情况. 1. 布局脚本 在 application ...
- 【App FrameWork】页面之间的参数传递
若应用中有多个页面,这时2个页面之间可能需要进行参数传递.那么如何来实现呢? 首先想到的就是URL参数传递的方式,如:在panel里设置属性 data-defer="Pages/Shake. ...
- Redesign Your App for iOS 7 之 页面布局
Redesign Your App for iOS 7 之 页面布局 http://www.vinqon.com/codeblog/?detail/11109
随机推荐
- mysql中limit的用法实例解析
mysql中limit的用法解析. 在mysql中,select * from table limit m,n.其中m是指记录开始的index,从0开始,n是指从第m条开始,取n条. 例如: mysq ...
- 多线程的单元测试工具 - GroboUtils
写过Junit单元测试的同学应该会有感觉,Junit本身是不支持普通的多线程测试的,这是因为Junit的底层实现上,是用System.exit退出用例执行的.JVM都终止了,在测试线程启动的其他线程自 ...
- wpf 绑定失效的原因及解决方案
有时候,您会发现在程序开始时还能正常运行的绑定失效了.就个人经验而言,绑定的失效主要分为两种情况:对于One-way绑定而言,如果软件开发人员绕过绑定直接更改了目标属性,那么绑定将会失效.而对于Two ...
- 解决rhel相关系统下yum找不到安装包的解决方法
最近重新安装了Linux,用的版本是CentOS 5.1.但老是出现很多包找不到的情况. [root@toughhou /]# yum install rlwrap Loaded plugins: f ...
- Entity Framework 安装出现问题
Entity Framework 详情请看: http://ulfqbpl.blog.163.com/blog/static/8778355220126272473276/
- 在工程中添加pch文件
在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编 ...
- GIS的数学基础
在这里需要说明一点,任何领域的概念.技术都有其特定的适用范围,有其解决的问题,有其发展的历史,所以,抛开应用环境.范围来谈技术就像是没有根系的枝丫,枝丫再粗壮也只是一根木头而已. 那接下来我们来聊聊什 ...
- SNMP的工作原理&软件开发
SNMP(Simple Network Management Protocol,简单网络管理协议)首先是由IETF的研究小组为了解决Internet上的路由器管理问题而提出的.SNMP的设计原则是简单 ...
- js根据id、pid把数据转为树结构
//格式化树数据 function toTreeData(data) { var pos = {}; var tree = []; var i = 0; while (data.length != 0 ...
- ./configure详解
'configure'脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'--help'选项执行'configure'脚本可以看到可用的所有选项.尽 ...