HTML5+JS手机web开发之jQuery Mobile初涉

一、起始之语

我一直都是在PC上折腾网页的,这会儿怎么风向周边捣鼓起手机网页开发呢?原因是公司原先使用Java开发的产品,耗了不少人力财力,但是最后的效果却不怎么好。因为,Android系统一套东西,iPhone又是新的一套,折腾死人呐。

于是总监发狠,让我把手上的活都交出去,专心折腾web版的,看看最后效果如何。

加上我觊觎手机上的开发学习很久了,于是,一拍即合,搞起了手机开发方面的学习。

分享是很好的提高自身学习的方法。因为分享过程中梳理了所学,往往会有些意想不到的心得与收获。如此利人利已的事情,自然乐意为之。于是,自己在文 章id > 2000 的这一历史性时刻,新建了一个“mobile相关”的分类目录,把移动相关的一些东西总结,整理,分享出去,大家共勉。

二、我的选择

显然,当下手机web开发移不开CSS3 + HTML5以及JavaScript。目前,也应运而生了很多开发的框架,有胶水层的,也有显示层的(不罗列)。因为个人偏好以及筛选,决定使用PhoneGap实现与设备相机,通讯录等交互,jQuery Mobile实现页面UI的显示以及相关交互。

如果时间足够,我想我会针对项目本身重新搞个更轻便灵活的交互框架。考虑到现实情况,还是决定使用他人的UI框架。

下截图为今儿个上午(2011-11-1 11:11)跑通的第一个PhoneGap下的Android手机程序:

不过PhoneGap是与胶水层打交道的东西,要说到这东西还需要些时日。我们可以先把目前投向与页面显示相关的UI框架上。例如,本文要说起的jQuery Mobile。

三、我眼中的jQuery Mobile

目前为止,jQuery Mobile的正式版还没有出来,但是这并不妨碍对其的使用。官方首页上说其代码轻量(lightweight code)。可能跟Sencha Touch相比确实轻量。但是,在我看来(本身为框架的原因),其实代码还是蛮啰嗦的(例如CSS文件min后有49K之多)。对于实际的项目而言,皮肤风格不可能几种并存的,所以,其a~e的五种模板选择实际有些多余,很多都是打酱油的命。

而且,实际项目中的设计师设计东东的时候不可能是总是跟着jQuery Mobile的UI来的。因此,我们难免会碰到对其模板进行修改或是新添加的情况。

不过,我可以确信的是,如果在个人网站或是其他一些非对外的中小项目上使用jQuery Mobile的话,一定会爽歪的!

然后,还有一点我得承认。jQuery Mobile的上手可比Sencha Touch快多了。其UI显示基本上就是基于HTML5的data-自定义属性来的,跟它的老爸爸jQuery一样,确实是write less, do more.

页面元素的UI显示完全可以根据HTML代码内容和属性而来,不需要任何额外的JavaScript代码或是CSS代码,有模有样的手机页面效果就可以出炉。而且,要出效果页面,你只要静下心花个1整天的时间把官方的介绍文档看一篇就可以了。真这么简单。

例如下面这个纯显示的页面们(PC建议使用Chrome浏览器围观)。
您可以狠狠地点击这里:jQuery Mobile的UI展示页面

手机可以访问以下地址:http://www.zhangxinxu.com/jq/mobile/

这是在桌面版opera 10.1 mobile下的显示效果:
默认进入:

选择“文章搜索”项 → 点击搜索框后:

如果是在Android系统或是iPhone上,渐变效果,平滑切换效果都会显露出来的。

上面加起来差不多有10多个HTML页面,捣鼓了几个小时就出来的,当然是在无敌模式下。为什么快呢?因为基本上没有动一点新的CSS代码或是JavaScript代码。直接write HTML即可。如果你对jQuery Mobile熟悉的话,可以更快。

语义化
要想使用jQuery Mobile,很重要的一点就是要注意语义化。到不是使用HTML5之类的标签(考虑到渐进增强,jQuery Mobile使用的还是XHTML时代的标签),而是divpul ,lih1~6等的使用。

jQuery Mobile标签下,不同的标签所对应的UI效果很多都已经定死了。例如:

<div data-role="header">     <h1>鑫空间-鑫生活</h1>     <a href="#" data-icon="arrow-r" data-iconpos="right">中文</a> </div>

上面这段data-roleheader的div中,h1标签不仅仅是个标题了,而是直接会修改当下页面的title值,因此,上面几行代码对应的页面的title就是“鑫空间-鑫生活”,即使你头部的title写的是“今天是小光棍节,呼啦啦~~”。

而后面的a标签文字虽然没有指定data-role="button",但是,谁叫他生在data-role="header"的div下呢,于是,它就是个显示按钮的命。而且,JMobile自动将其定位到右侧了。

语义化的标签决定了其位置,显示等。确实方便,但是有所限制。可谓有利有弊。

还有列表li标签中的第一个图片,会自动变成列表缩略图等,好多好多,你试一下就会发现这东西还是挺有意思的。

嘛,不过吗,不用急,冰冻三尺非一日之寒,什么东西都是慢慢积累的。才刚开始,说多了未必是好。所以,本文就唠叨这么多。

HTML5+JS手机web开发之jQuery Mobile初涉

时间: 2024-12-09 16:37:25

HTML5+JS手机web开发之jQuery Mobile初涉的相关文章

Web开发之RSET API

REST介绍 如果要说什么是REST的话,那最好先从Web(万维网)说起. 什么是Web呢?读者可以查看维基百科的词条(http://zh.wikipedia.org/zh-cn/Web),具体的我就不多说了.总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web.当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web. 那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术,URI(统一资源标识符,用来标

[Java Web] 3\WEB开发之HTML基础程序试手

1.初试: 1 <html> 2 <body> 3 <h1>My First Heading</h1> 4 <p>My first paragraph.</p> 5 </body> 6 </html> 2.标题: HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的.显然由大标题变为小标题.... 1 <html> 2 <body> 3

【Go web开发之revel+mgo】第11章 部署到heroku上

演示地址  http://gblog-revel.herokuapp.com/ 1.申请mongohq 关于如何在注册heroku和mongohq帐号,我在之前的blog里面有说明,http://blog.csdn.net/joveth/article/details/19999535 这里简单的说一下,还记得我们的models/dao.go文件里的NewDao方法中被注释的那一行吗? session, err := mgo.Dial("mongodb://omind:[email protec

管理外借设备的小工具(简化界面和优化手机界面的功能jquery mobile)

前阵子写了个小工具,后来经过经理的审核后给了我几个改进的建议,第一是简化界面,这个工具将来会用手机来进行管理,所以界面上要尽量简化,省去不必要的组件,第二是使用jquery mobile来美化界面,第三是使用ajax post方式来提交数据,避免传统的post方法重载整个页面. 第一,我加上了检测客户端设备的页面为首页,这样就能在访问首页的时候根据设备来做重定向, 此代码参考了csdn里某大牛的文章,做了部分修改,原文出自这里:链接 index.php代码为:     <?php        

移动WEB开发之JS内置touch事件[转]

iOS上的Safari也支持click 和mouseover等传统的交互事件,只是不推荐在iOS的浏览器应用上使用click和mouseover,因为这两个事件是为了支持鼠标点击而设计 出来的.Click事件在iOS上会有半秒左右的延迟,原因是iOS要highlight接收到click的element.而 mouseover/out等事件则会被手指的点击触发.所以,在iOS上,应当抛弃传统的交互事件模型而接受一个新的事件模型.Touch事件和更高级 的Gesture事件,能让你的网页交互起来像n

web 开发之js---ajax 异步处理

本文介绍了如何创建能够适应不同浏览器的XMLHttpRequest实例,建立和发送请求,并响应服务器.您将开始接触最基本和基础性的有关Ajax的全部对象和编程方法:XMLHttpRequest对象.该对象实际上仅仅是一个跨越所有Ajax应用程序的公共线程,您可能已经预料到,只有彻底理解该对象才能充分发挥编程的潜力. XMLHttpRequest简介 XMLHttpRequest 是JS的一个对象.它是介绍 Web 2.0.Ajax 和大部分其他内容的核心.下面给出该对象的几个方法和属性:1.op

Syntax error, insert &quot;]&quot; to complete MemberExpression XXX.js (Java Web Project 导入Jquery的文件后报错)

想在自己网站project中加入一个别人写的jquery插件,可导入后总报错:Syntax error, insert "]" to complete MemberExpression XXX.js 按它的要求改了还是会出现别的问题 (没有加入到project中jquery所关联的html文件可以运行) 解决方法: 处理步骤如下: 1.打开你所建web项目.project文件,去掉或是注释掉如下内容: <buildCommand> <name>org.eclip

前端开发之jQuery库的引用

使用jquery开发的时候,如果我们不想使用自己的jquery文件,那么可以引用现成的地址.方便日常开发使用 jquery-2.0以上版本 (注!不再支持IE 6/7/8) jquery-2.0.0百度引用地址 (推荐目前最稳定的,不会出现延时打不开情况) 支持的版本: 2.0.3, 2.0.2, 2.0.1, 请根据所需要的版本 修改对应(红色字为当前版本)的地址: jquery/2.0.0/jquery.min.js 百度压缩版引用地址: <script src="http://lib

Hybrid App开发之jQuery基础

前言: 前面学习了JavaScript/Html/Css的基础知识,今天学习一下常用js框架jQuery的使用进行快速的开发. JQuery的基本功能: 方位和操作DOM元素 控制页面样式 对页面事件的处理 大量插件在页面中的运用 与ajax技术的完美结合 首先先编写一个jquery程序 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <