`
rensanning
  • 浏览: 3537569 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:37939
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:606380
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:680993
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:88631
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401175
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69529
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91385
社区版块
存档分类
最新评论

Cordova 3.x 基础(9) -- UI框架jQuery Mobile

阅读更多
目前Version 1.4.1,这里只是做个摘要,官方的Demos有很详细的使用说明。
http://demos.jquerymobile.com/1.4.1/
http://api.jquerymobile.com/

(1)引入
<!DOCTYPE html>

<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />

<link rel="stylesheet" type="text/css" href="lib/jquery.mobile/jquery.mobile-1.4.1.min.css" />
<script type="text/javascript" src="lib/jquery/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="lib/jquery.mobile/jquery.mobile-1.4.1.min.js"></script>


(2)基本构造
单页面
<div data-role="page"> 
  <div data-role="header">...</div> 
  <div role="main" class="ui-content">...</div> 
  <div data-role="footer">...</div> 
</div>

***1.4之前主体部分使用「data-role="content"」

多页面
<div data-role="page" id="first">
  <div data-role="header">...</div> 
  <div role="main" class="ui-content">...</div> 
  <div data-role="footer">...</div> 
</div>
<div data-role="page" id="second"> 
  <div data-role="header">...</div> 
  <div role="main" class="ui-content">...</div> 
  <div data-role="footer">...</div> 
</div>

在早期版本中为了提高页面跳转的效率,在一个文件中定义多个页面,通过「href="#ID名"」页面跳转。默认显示文件中定义的第一个page,如果要自定义初期显示其他page的话
if (document.location.hash == "")
     document.location.hash = "#second";

但是这样也就加重了HTML的load速度,所以现在基本都是1个文件1个页面。

(3)主题Theme
除过一些特殊的Widget(比如ListView)需要特殊设置外,大部分Widget都可以通过data-theme来修改主题。1.4之前提供a、b、c、d、e五种主题,从1.4开始做了简化。官方还提供了自定义主题的ThemeRoller for jQuery Mobile:http://themeroller.jquerymobile.com/

(4)Header/Footer
首先Header和Footer都不是必须元素,在需要的是时候添加即可。

Header
只有标题
<div data-role="header">
    <h1>Title</h1>
</div>


左按钮
<div data-role="header" data-theme="b">
  <a href="#" class="ui-btn ui-btn-a ui-btn-left">Left</a>
  <h1>Title</h1>
</div>


右按钮
<div data-role="header" data-theme="b">
  <h1>Title</h1>
  <a href="#" class="ui-btn ui-btn-a ui-btn-right">Right</a>
</div>

1.4之前按钮是先左后右放置,跟代码写在什么地方没有关系。现在的版本希望class属性明确指定位置。

左右按钮
<div data-role="header" data-theme="b">
  <a href="#" class="ui-btn ui-btn-a ui-btn-left">Left</a>
  <h1>Title</h1>
  <a href="#" class="ui-btn ui-btn-a ui-btn-right">Right</a>
</div>


回退按钮
<div data-role="header" data-add-back-btn="true" data-back-btn-text="Back">
    <h1>jQuery Mobile TIPS</h1>
    <a href="help.htmll" class="ui-btn ui-btn-a ui-btn-right">About</a>
</div>

1.4之前回退按钮需要通过<a>元素来实现。

全局回退按钮有效设置:
$(document).on('mobileinit', function() {
  $.mobile.toolbar.prototype.options.addBackBtn = true;
  $.mobile.toolbar.prototype.options.backBtnText = 'Back';
});


data-position="fixed" 固定位置
data-fullscreen="true" 页面Tap的时候隐藏
data-id属性 页面跳转的时候只会滑动content部分

(5)链接Link
<a href="http://www.wings.msn.to/" class="ui-btn">...</a>
<a href="basic.html" target="_blank" class="ui-btn">...</a>
<a href="basic.html" rel="external" class="ui-btn">...</a>
<a href="basic.html" data-ajax="false" class="ui-btn">...</a>


同一Domain下,link默认使用ajax加载。

data-transition="slide" 跳转动画

默认跳转动画
$(document).bind("mobileinit", function(){ 
   $.mobile.defaultTransition = "slidedown";
})


(6)按钮Button
显示一个按钮,有<button>、<a>、<input>三种方式。

对于<button>和<a>
<button class="ui-btn">...</button>
<a href="#" class="ui-btn">...</a>


1.4以前使用「data-role="button"」

ui-btn-inline 紧凑
ui-corner-all 圆角
ui-shadow 阴影
ui-btn-* 变更主题
ui-mini 最小化

对于<input>
<input type="button" value="..." />
<input>稍微不同,需要通过data-xxxxx属性来设置样式。
data-inline、data-corners、data-shadow、data-theme、data-mini

按钮组
<div data-role="controlgroup">
  <button class="ui-btn">...</button>
  <a href="index.html" class="ui-btn">...</a>
  <input type="button" value="..." />
</div>


水平放置按钮
<div data-role="controlgroup" data-type="horizontal">...</div>


(7)导航Navbar

<div data-role="navbar">
<ul>
  <li><a href="#" data-icon="grid">Summary</a></li>
  <li><a href="#" data-icon="star" class="ui-btn-active">Favs</a></li>
  <li><a href="#" data-icon="gear">Setup</a></li>
</ul>
</div>


(8)列表Listview

一般
<ul data-role="listview">
    <li><a href="#">Acura</a></li>
    <li><a href="#">Audi</a></li>
    <li><a href="#">BMW</a></li>
    <li><a href="#">Cadillac</a></li>
    <li><a href="#">Ferrari</a></li>
</ul>


分组
<ul data-role="listview" data-inset="true">
    <li data-role="list-divider">Mail</li>
    <li><a href="#">Inbox</a></li>
    <li><a href="#">Outbox</a></li>
    <li data-role="list-divider">Contacts</li>
    <li><a href="#">Friends</a></li>
    <li><a href="#">Work</a></li>
</ul>


(9)左右滑动菜单Panel
<div data-role="page">
    <div data-role="header" data-position="fixed">
        <h1>Fixed header</h1>
        <a href="#nav-panel" data-icon="bars" data-iconpos="notext">Menu</a>
        <a href="#add-form" data-icon="gear" data-iconpos="notext">Add</a>
    </div>
    <div role="main" class="ui-content jqm-content jqm-fullwidth">
       //......
    </div>
    <div data-role="footer" data-position="fixed">
        <h4>Fixed footer</h4>
    </div>
    <div data-role="panel" data-position-fixed="true" data-display="push" id="nav-panel">
        //......
    </div>
    <div data-role="panel" data-position="right" data-position-fixed="true" data-display="overlay" id="add-form">
       //......
    </div>
</div>
分享到:
评论
6 楼 rensanning 2014-03-06  
猜测估计跟前几年他们在Y Combinator融资失利有关,他们在不断推出新的产品,Codiqa的开发难免有些停滞。另外JQM兼顾Web App和Hybrid App现在已经明显有些笨拙,应该不是他们认为的移动应用的大方向。
5 楼 marty 2014-03-05  
rensanning 写道
Codiqa现在用的是jQuery Mobile 1.3.1,不过从他们的Twitter来看,正在升级到1.4。

引用
Codiqa 拖拉元件生成的HTML代碼沒辦法編輯

Drag/Drop工具一般都是通过修改propertie来修改。

现在好像没有30天试用了。


對啊,而且費用也調高了 ><
說到Drag/Drop支援直接寫代碼這種雙向編程方式,能提供高度彈性 (能編代碼還有什麼不能做到 ? ) ,雖然 Codiqa 這產品沒有,不過 Jetstrap 倒是有支援 ^^

我猜想Codiqa 可能是第一代產品,當時的架構還沒那麼完善,才會光調整升級動作都慢很多。
4 楼 rensanning 2014-03-05  
Codiqa现在用的是jQuery Mobile 1.3.1,不过从他们的Twitter来看,正在升级到1.4。

引用
Codiqa 拖拉元件生成的HTML代碼沒辦法編輯

Drag/Drop工具一般都是通过修改propertie来修改。

现在好像没有30天试用了。
3 楼 marty 2014-03-04  
rensanning 写道
@marty

看看Codiqa,更专业!https://codiqa.com/demo
他们公司开发的3个产品(Codiqa、 Jetstrap、Ionic Framework)都相当棒!


Codiqa也是用JQueryMobile框架,不過JQueryMobile版本一直沒更新,很可惜。另外Codiqa 拖拉元件生成的HTML代碼沒辦法編輯,這對於學習JQueryMobile語法,想修改或剪貼範例Code而言,較不方便
2 楼 rensanning 2014-02-28  
@marty

看看Codiqa,更专业!https://codiqa.com/demo
他们公司开发的3个产品(Codiqa、 Jetstrap、Ionic Framework)都相当棒!
1 楼 marty 2014-02-28  
這個強大而且免費視覺化工具可以立馬體驗JQueryMobile 1.4.1的語法風格,操作速度。
可以試看看...

http://jqmdesigner.appsp0t.com

相关推荐

    PhoneGap 3.x Mobile Application Development Hotshot.2014.pdf

    ### PhoneGap 3.x Mobile Application Development Key Knowledge Points #### Overview **PhoneGap 3.x Mobile Application Development Hotshot.2014.pdf** is a comprehensive guide designed to help ...

    jquery.mobile-1.4.5

    jQuery Mobile 是一个强大的前端框架,专为构建响应式、触控友好的移动Web应用程序而设计。这个版本是1.4.5,它提供了丰富的组件、交互效果和优化,旨在简化跨平台的移动应用开发。 1. **框架基础** - jQuery ...

    rootMobileApp:使用 Cordova 开发的移动应用程序,并使用 jQuery Mobile 进行 UI 和页面路由。 (再也不会 jQM)

    Jquery mobile 用于 UI 和路由我该如何设置? 安装 Cordova/phonegap 和特定平台 sdk(在我的情况下为 iOS) cd 到想要的目录运行命令:“cordova create [folder_name] com.your_name.[folder_name] [project_name...

    jquery.mobile

    jQuery Mobile 的版本迭代不断引入新特性,如 `jquery.mobile-1.0a1` 是早期的一个预览版,随着时间推移,后续版本修复了诸多bug,增强了性能,并加入了更多功能。例如,1.x 系列增加了对更多 HTML5 标签的支持,...

    使用jquery-mobile+html5实现android本地通讯录

    首先,jQuery Mobile是一个基于HTML和CSS的框架,它提供了丰富的UI组件和交互效果,使得开发者可以创建具有触摸友好的用户界面。它的核心理念是利用数据属性和链接增强HTML元素,以实现动态页面和响应式布局。 ...

    jquerymobile-cordova-tutorial-meeting-rooms-3:添加cordova项目和服务器模块

    9. **版本控制**:文件名为“jquerymobile-cordova-tutorial-meeting-rooms-3-master”暗示了项目使用了Git作为版本控制系统。Git可以帮助开发者追踪代码变更,协同开发,并管理不同版本的代码。 10. **部署与发布*...

    JQueryMobile_开发常见问题操作手册|教程

    - **低学习曲线**:如果你已经熟悉 jQuery,那么学习 jQuery Mobile 相对简单,因为它只是在 jQuery 的基础上增加了移动 UI 的功能。 - **广泛的浏览器兼容性**:jQuery Mobile 支持几乎所有的移动浏览器,确保在...

    构建跨平台APP jQuery Mobile移动应用实战代码

    在提供的“jQueryMobile2源代码”中,你可以找到示例项目的结构和实现,这对于深入理解 jQuery Mobile 的工作原理和实践技巧非常有帮助。通过研究这些代码,你将能更好地掌握如何利用这个框架构建功能丰富的跨平台...

    JQueryMobile相关

    - **PhoneGap/Cordova集成**:jQuery Mobile 也常用于混合应用开发,与PhoneGap或Cordova结合,构建原生应用。 综上所述,jQuery Mobile 提供了一个全面的解决方案,帮助开发者快速构建具有触摸优化界面的移动Web...

    jquery mobile

    3. **与PhoneGap/Cordova的结合**:可以将jQuery Mobile应用打包成原生应用,实现混合开发。 4. **与AngularJS、React等现代框架的融合**:虽然jQuery Mobile的组件可能与这些框架有所冲突,但通过合理的设计和适配...

    phoneGap jqueryMobile demo

    在"phoneGap jqueryMobile demo"这个项目中,SmartHome可能是示例应用的名字,可能包含了一系列使用PhoneGap和jQuery Mobile创建的文件,用于展示如何将两者结合使用来开发一个智能家居控制应用。开发者可能使用HTML...

    jquery mobile, phoegap

    3. **PhoneGap与jQuery Mobile结合**: - **UI 层面**:PhoneGap 应用中可以利用 jQuery Mobile 提供的 UI 组件和交互效果,提升用户体验。 - **性能优化**:需要注意的是,虽然两者结合方便,但过多的 AJAX 请求...

    【叨、校长】PhoneGap+jQuery Mobile+Rest 访问远程数据

    jQuery Mobile是一个轻量级的UI库,专门为移动设备优化。它简化了页面布局和触摸事件处理,提供了诸如按钮、表单、下拉菜单等丰富的组件。通过数据属性和主题系统,可以轻松实现一致的界面设计。 3. RESTful API...

    phonegap+jqueryMobile例子

    在这个“phonegap+jqueryMobile例子”中,我们将深入探讨这两个工具如何协同工作,以及如何利用它们创建Android应用程序。 PhoneGap是一个开源框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用。...

    PhoneGap+Jquery mobile汇率计算器

    jQuery Mobile则是一个专为触摸设备设计的前端框架,它提供了丰富的UI组件和交互效果,简化了移动网页的开发。jQuery Mobile的核心特点是其统一的触摸事件处理和渐进增强的策略,使得应用在各种屏幕大小和性能的设备...

Global site tag (gtag.js) - Google Analytics