jQuery Mobile高手必备的十大技巧和代码片段
http://mobile.51cto.com/hot-276160_9.htm
4、阻止一些关键项目被截断
库的一项特性(或者是缺点,就看你的需要了)在于,它能够智能化地截断很长的项目,以适应用户界面元素。
我发现在两种情况下这可能很烦人。首先在列表项目中,我更喜欢看到全部文本。其次是在脚注文本中。一旦你在这里有好多个字符,它似乎就会开始用“…”来截断。使用这个简单的CSS来覆盖这两种默认情况。
对于列表项目:
- body .ui-li .ui-li-desc {
- white-space: normal;
- }
对于脚注内容:
- body .ui-footer .ui-title {
- white-space: normal;
- }
5、使用媒体查询来锁定设备
我在使用这个库时最先遇到的问题之一是,如何使用CSS来锁定设备(根据屏幕尺寸)。比如说,我想要为iPad设计两列布局、为智能手机设计单列布局。要做到这一点,最佳办法绝对是使用媒体查询。
只要一些简单的媒体查询已到位,你就能迅速让CSS锁定屏幕尺寸。有了这种锁定技术,我们就能依赖传统的CSS方法,根据可用的屏幕空间来迅速创建不同的布局。
这方面的两篇出色的文章是:
CSS-Tricks网站的《CSS媒体查询和使用可用空间》
Stuff and Nonsense网站的《切合实际的CSS3媒体查询》
6、用jQuery锁定平台
尽管我们很想为某些设备执行某些CSS,但我们也想只在特定的设备上运行jQuery。下面对来自Snipplr的一些代码作了改动,那样我很容易把jQuery的一部分隔离开来,以便根据用户的设备来运行。
- var deviceAgent = navigator.userAgent.toLowerCase();
- var agentID = deviceAgent.match(/(iphone|ipod|ipad|android)/);
- if(agentID.indexOf("iphone")>=0){
- alert("iphone");
- }
- if(agentID.indexOf("ipod")>=0){
- alert("ipod");
- }
- if(agentID.indexOf("ipad")>=0){
- alert("ipad");
- }
- if(agentID.indexOf("android")>=0){
- alert("android");
- }
7、为表单动作属性的目标使用完全路径
jQuery Mobile库的一个不便之处似乎在于,很难找到张贴表单的目标页面;也就是说,除非你使用来自网站根目录的完全路径。
比如说,我发现这个表单标签从来找不到其目标:
- <form action=" form-handler.php " method="get" >
而像这样的完全路径可以起到应有的工作:
- <form action="/current-directory/form-handler.php" method="get" >
另外,还要确信来自表单处理程序的结果会生成一个完整、有效的jQuery Mobile页面,如第一个技巧所示。
8、创建弹出式对话框
jQuery Mobile库的一项便利特性就是内置的弹出内容或对话框特性。创建这项便利的特性简单得很。基本上只要添加需要链接的属性,如下所示:data-rel="dialog"。
注意两点。首先,目标页面必须是完整的jQuery Mobile页面,如第一个技巧所概述。其次,这只适用于外部页面;它必须是完整的单独页面才能正常工作。
- <a href="#pop.html" data-rel="dialog">Pop up!</a>

9、“Cancel”和“Save”组合按钮
这段代码满足了两个基本要求。第一个要求是,让两个按钮彼此相邻。幸好,jQuery Mobile库有一种内置的列结构,只要使用标签和合适的类,很容易利用这种结构,如下所示。第二个要求是,让两个按钮有不同的主题。这段代码直接来自说明文档,我把它留在手边,以便经常使用。
- <fieldset>
- <div><button type="submit" data-theme="c">Cancel</button></div>
- <div><button type="submit" data-theme="b">Submit</button></div>
- </fieldset>
10、自行创建列结构
我在竭力为多个设备设计最佳的单个页面结构时,发现自己经常结合运用上述的媒体查询技巧和“随意顺序的列”(columns in any order)方法。
幸好,Web开发人员很早以前就弄清楚了如何移动列。结合运用这个方法和媒体查询,我们就可以根据所处理的屏幕尺寸,很容易创建各种结构。
Position Is Everything网站展示了最容易使用的方法之一。
结论
jQuery Mobile库处理起来很方便。只要稍微下一点工夫,它就能获得出色的效果。考虑到它目前仍处于测试阶段,所以它起步不错。但愿你在不断钻研这个新的库时,这些快速技巧能让你不断前进。
http://mobile.51cto.com/aengine-358926.htm
1、禁止截断过长的列表和按钮内容
在jQuery mobile中,如果列表或者按钮中文字的内容过长,jQuery Mobile会自动截断其超过长度的内容,但如果不希望这样的话,可以在CSS样式中增加如下设置即可,比如下面的是针对按钮的CSS样式设置:
- .ui-btn-text {
- white-space: normal;
- }
下面的是针对列表的CSS样式设置
- .ui-li-desc {
- white-space: normal;
- }
如果要恢复对文字的截断,则继续设置CSS为white-space: nowrap;
2、实现页面加载时的随机页面背景过渡效果
jQuery Mobile中,当需要实现页面加载时,可以有很多的页面加载事件可供使用。比如下面的CSS和JavaScript代码,可以实现页面加载时的随机页面背景过渡效果。
CSS代码:
- my-page { background: transparent url(../images/bg.jpg) 0 0 no-repeat; }
- .my-page.bg1 { background: transparent url(../images/bg-1.jpg) 0 0 no-repeat; }
- .my-page.bg2 { background: transparent url(../images/bg-2.jpg) 0 0 no-repeat; }
- .my-page.bg3 { background: transparent url(../images/bg-3.jpg) 0 0 no-repeat; }
Javascript代码:
- $('.my-page').live("pagecreate", function() {
- var randombg = Math.floor(Math.random()*4); //获得0到3之间的随机数
- $('.my-page').removeClass().addClass('bg' + randombg);
- });
3、禁用button
在有的情况下,可能会需要禁止按钮的加载事件,这个时候可以继续通过如下的设置实现:
- $('#home-button').button("disable");
如果要恢复可用,则设置为:
- $('#home-button').button("enable");
4、去掉页面加载时的提示信息
如果在加载页面时,不需要显示页面加载信息时,可以通过设置一个属性来取消显示加载提示信息,如下:
- $.mobile.pageLoading(true);
如果要继续保持显示页面加载信息,则为:
- $.mobile.pageLoading();
5、创建自定义主题
jQuery Mobile本身提供了A-E五种不同的主题,但可以自定义主题,步骤如下:
- 从jQuery Mobile的任意一个定义主题的CSS文件中,复制其内容到自己定义的CSS文件中。
- 给要自定义的CSS主题一个恰当的名称并且重新命名CSS文件,注意命名必须是(a-z)英文字母,比如你是从jQuery Mobile的主题c的样式文件中复制的,则可以将主题命名为Z,则复制过来的内容中,比如要将.ui-btn-up-c改为.ui-btn-up-z,.ui-body-c改为.ui-body-z,如此类推。
- 改变新建立的自定义主题的颜色和CSS文件。
- 最后,需要在页面中,应用新定义的主题样式,如下:
- <div data-role="page" data-theme="z"></div>
6、使用自定义字体
在移动Web应用中,有的时候需要更换字体,这样的话,可以通过使用@font-face方法实现,并且性能是十分好的。具体关于@font-face的使用,请参考http://www.sitepoint.com/the-fontface-jquery-plugin/这篇文章。
7、创建一个没有文本只有图片的按钮
有时,可能想用一个没有文本内容仍具有按钮特性的一个按钮。如果要在按钮上隐藏文本,设置data-iconpos="notext",例如:
- <a href="../index.html" data-icon="grid" claa="ui-btn-right" data-iconpos="notext">Home</a>
8、打开一个无需使用Ajax页面过渡的超链接
如果不需要使用Ajax打开一个页面的链接,可以设置链接的rel属性,如下:
- <a href="../index.html" data-icon="grid" class="ui-btn-right" rel="external">Home</a>
9、移除项目列表中的箭头
默认情况下,jQuery Mobile框架会为每一个列表项添加一个箭头,想要禁用箭头显示,需要在想要移除列表项设置data-icon="false"。
- <li data-icon="false"><a href="contact.html">Contact Us</a></li>
10、设置页面的背景颜色
怎样在不修改jQuery Mobile样式下设置一个页面背景颜色的?听起来很简单,其实需要花几分钟时间才能解决。通常情况下,需要在body元素中设置背景颜色,但是用jQuery Mobile框架,需要设置在ui-page类中。
- .ui-page{
- background:#eee;
- }
posted on 2013-08-27 23:50 master2012 阅读(169) 评论(0) 收藏 举报
浙公网安备 33010602011771号