Web App开发之 jQuery Mobile 与响应式
白羽 2018-06-19 来源 :网络 阅读 1226 评论 0

摘要:本文将带大家了解Web App开发之 jQuery Mobile 与响应式,希望本文对大家学WEBAPP有所帮助。



一. Media Queries

在 jQuery Mobile 的 CSS 源码中,会有大量类似下面的代码:


   

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),

    only screen and (min--moz-device-pixel-ratio: 1.5),

    only screen and (min-resolution: 240dpi) {

 

    .ui-icon-plus, .ui-icon-minus, .ui-icon-delete, .ui-icon-arrow-r,

    .ui-icon-arrow-l, .ui-icon-arrow-u, .ui-icon-arrow-d, .ui-icon-check,

    .ui-icon-gear, .ui-icon-refresh, .ui-icon-forward, .ui-icon-back,

    .ui-icon-grid, .ui-icon-star, .ui-icon-alert, .ui-icon-info, .ui-icon-home, .ui-icon-search, .ui-icon-searchfield:after,

    .ui-icon-checkbox-off, .ui-icon-checkbox-on, .ui-icon-radio-off, .ui-icon-radio-on {

        background-image: url(images/icons-36-white.png);

        -moz-background-size: 776px 18px;

        -o-background-size: 776px 18px;

        -webkit-background-size: 776px 18px;

        background-size: 776px 18px;

     }

    .ui-icon-alt {

        background-image: url(images/icons-36-black.png);

    }

 }

   

这是 Media Queries ,可以根据条件匹配相应的 CSS ,这样在不同的情况下可以应用相应的 CSS ,以达到自适应的效果。关于 Media Queries ,之前已经写了一篇文章进行详细的介绍,请参考 ——

另外,jQuery Mobile 默认会对组件进行结构、样式和交互上的增强,因此除了使用 Media Queries 为不同的情况匹配相应的 CSS 外,jQuery Mobile 在设计增强的组件结构时也针对响应式布局进行设计,使到由 jQuery Mobile 驱动的 Web Apps 在外观上可以更加灵活。

二. 运行媒介查询 (Running Media Queries)

运行媒介查询 (Running Media Queries) 是 jQuery Mobile 的一个实用工具,它在 jQuery Mobile 内部有多次调用,主要是确保一些效果能够在合适的情况下运行。例如:在介绍 jQuery Mobile 页面转场时,有说明过,当转场页面的宽度过大时,翻转等 3D 效果可能会过度消耗系统资源,因此开发者可以使用 $.mobile.maxTransitionWidth 控制转场最大宽度,超过该宽度则不使用转场动画,而判断宽度是否超过设定值的技术原理就是利用运行媒介查询。作为开发者,我们也可以利用则个工具帮助我们进行响应式设计,这里需要明确一点,这个工具的作用是判断当前情况是否已经满足一个 Media Queries ,即使用 JavaScript 判断 Media Queries 内的条件是否满足。如果你已经了解了第一部分的内容,会了解到在开发中可以根据 Media Queries 的结果判断是否应该引入一段 CSS ,但网页布局中有时候也需要判断是否引入 JavaScript ,运行媒介查询正是可以用于判断是否应该引入一段 JavaScript 。

例如:


   

$.mobile.media('screen') // 测试媒体类型是否为 'screen'

$.mobile.media('screen and (min-width: 480px)') // 测试媒体类型是否为 'screen' 并且窗口宽度大于等于 '480px'

$.mobile.media('@media screen and (-webkit-min-device-pixel-ratio: 2)') // 测试是否为 webkit 内核并且像素比为 2x (可以用来判断是否为 iPhone 4)

 

// 根据判断结果作出相应的处理

if( $.mobile.media('screen and (min-width: 480px)') )

    // 相应的处理

   

三.设备方向变化事件与方向类

当设备方向变化(即设备在横向和纵向的方向间转变)时,会触发 orientationchange 事件,这个事件的回调函数的事件对象(e 或 event)中会封装一个 orientation 属性,其值为 "portrait" 或 "landscape" ,用来描述设备是改变为纵向时触发事件还是改变为横向时触发事件。在旧版本的 jQuery Mobile ,这个值也会作为 class 添加到 html 标签中,让开发者可以依据这个 class 添加相应的 css ,即方向类,但在新版的文档中已经没有关于方向类的说明,调试后也没有出现相应的方向类,因此在新版 jQuery Mobile 中已经不支持原生方向类,但可以通过 jQuery 达到相同的效果,例如:


   

$(window).bind( 'orientationchange', function(e){

    if( e.orientation == 'portrait' ) $('html').addClass('portrait').removeClass('landscape');

    else if( e.orientation == 'landscape' ) $('html').addClass('landscape').removeClass('portrait');

 });

   

分别为 landscape 和 portrait 指定相应的样式即可。

另外,关于 orientationchange 事件的绑定元素和不支持该事件时的处理也需要特别注意,具体可以参考 —— 《使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 事件详解》的第三部分“设备方向变化事件 (Orientation change event)”。

最后补充一个 Demo ,建议在 Android , iPhone/iPad 的系统浏览器上浏览,用于测试 orientationchange 的基本效果。

关于响应式设计的详细说明。可以参考 —— 《前端开发之响应式设计》

至本文为止,已经用了 15 篇文章详细阐述 jQuery Mobile 的各个组件、事件、方法以及其中的 Ajax 机制、增强机制和执行流程等技术原理,相信各位对 jQuery Mobile 已经有了一定的熟悉,接下来要说明的,是 HTML5 在 Web Apps 上的应用。实际上,HTML5 有很多相对于 HTML4 的新特性都是为移动开发而设计的,因此这也是对一系列 HTML5 新特性的说明。


 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之WebApp频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程