智能手机版(简称M版)前端开发终于告一段落,第一次做移动端开发,没有想象中那么难搞,但是期间也遇到了各种这样那样的问题,虽然从小日记都不是自己写的,但是开发笔记还是要自己写的,不敢说让别人学习,只是仅以备忘,这算是序了。
关于M版,目前我们只考虑 iphone 跟 android 手机的兼容性,也就是说只需要考虑 webkit 内核的手机浏览器,这样可以放开大胆的使用 HTML5、CSS3 来实现一些效果,完全不用考虑 IE6,甚至连 IE 都不用考虑,这一点对于很多时间都在纠结于各种浏览器兼容性的我们来说具有很大的新鲜感,一个字,很爽,各种爽啊~
废话完了,笔记如下:
1、各种border-radius,box-shadow,-webkit-gradient
只要是能用上的都给用上,还不打折~这样整套下来整个项目的图片基本上就只剩下几个图标了。特别需要提起的是用 border 模拟三角箭头的时候有点意思,这个东西已经出现很多年了,只是限于IE6不能实现 background:transparent 效果而导致没有得到广泛应用,说有点意思是因为我们需要模拟的三角是有边框的,设计师伤不起啊,惹他们不高兴了就给你来各种圆角、各种边框(开个玩笑玩 笑,19UED还是相当和谐的~),最后采用的方法是在模拟的三角里再绝对定位一个 border 小 1px 的三角,算是小技巧吧。
2、样式屏蔽
手机端屏幕都很小,如果要让样式只在手机端显示可以用 media 来控制屏幕样式
- < link rel = “stylesheet” href = “m-only.css” media = “only screen and (max-device-width: 480px)” />
通过定义最大设备宽度 only screen and (max-device-width: 480px)(一般手机躺下来的宽度)来屏蔽屏幕比 480px 宽的阅读设备。这样就可以做到将 m-only 中定义的 CSS 样式仅在手机端生效。不过屏蔽其他设备真有必要吗?最后我们的代码里并没有加上这句,而是样式中的宽度都是自适应的。
3、viewport
- < meta name = “viewport” content = “width=device-width,minimum-scale=1.0,maximum-scale=1.0″ />
这个属性相当重要,当你发现页面可能没法缩放,甚至连滚动都不行的时候就有可能是没有设置viewport或者设置不对。
viewport的参数:
width: 手机模拟PC浏览器的宽度,然后手机浏览器根据这个宽度把页面同比缩放到手机屏幕上。width:的特殊值device-width的是设备宽度;
height:同width;
user-scalable:是否允许用户缩放,有yes和no两个值;
initial-scale:初始缩放比例;
minimum-scale和maximum-scale:最小和最大缩放比例;
相关文档:
http://learnthemobileweb.com/tag/viewport/
4、position fixed
做过 iphone Web 页面的应该都有遇到过这个问题,手机端的webkit内核浏览器不支持CSS的position: fixed
解释在这里:Doctyper
http://doctyper.com/archives/200808/fixed-positioning-on-mobile-safari/
Imagine a book in front of you. Take a piece of paper, cut a 320×416 square in it, and lay it over the book. To read the book, move the paper around and position the hole over the words you want to see. This is exactly what Mobile Safari’s viewport is doing. When you flick and scroll, you’re moving the viewport around while the website behind it stays static.
但是我们确实会需要将某些东西固定在页面上的某个位置,目前只有用JS来解决这个问题,给出两个链接,说的很详细了,不做赘述。
相关文档:
http://cubiq.org/scrolling-div-on-iphone-ipod-touch
http://cubiq.org/iscroll
最后由于综合到手机页面的可视区域和实现成本的考虑,我们最终放弃了在页面固定导航区域的设计,所以页面上不会看到相关代码。
5、重力感应
iphone或者android的重力感应游戏蛮有意思,我们的页面上能不能做重力感应的效果呢?通过window.orientation就可以实现,这个属性可以获取到当前页面方向,然后写上对应的操作就可以了,比如
- window.onorientationchange = function (){
- var orient = Math.abs(window.orientation);
- switch ( orient ) {
- case 90 :
- statement;
- break ;
- case -90 :
- statement;
- break ;
- default :
- statement;
- }
- }
window.orientation 有4个值:
0 正常的竖直方向
-90 默认方向顺时针90°
90 默认方向逆时针90°
180 反向竖直方向,暂时手机还不支持
6、触摸操作
在iphone跟android手机里我们都是通过触摸屏幕来进行各种交互操作,传统的PC端hover操作这里就不存在了(CSS里的hover伪类效果会显示在元素点击后上,而且如果没有再次点击会一直保持),这样CSS里的hover就可以完全删掉了。
交互操作有两种:
一种是单手指操作触摸,相关事件有 touchstart,touchmove,touchend 和 touchcancel,这几个事件最重要的属性是pageX和 pageY,表示X和Y坐标,发出这些事件的时候监听器会接收到一个event对象,包括touches(触摸对象集合)和targetTouches。
另外一个交互操作就是两个手指的缩放和旋转,相关事件有gesturestart、gestureend 和 gesturechange,事件监听器也会接受到event对象参数,包含 event.scale (缩放比例)和 event.rotate (旋转角度)两个参数,如果我们要旋转,可以配合CSS3 transform 来实现。
相关文档:
http://www.slideshare.net/pp.koch/the-touch-events
http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safariwebcontent/handlingevents/handlingevents.html
7、特殊链接
在PC端里,我们有时候会用到mailto来实现邮件的发送,在手机端里,也有类似的tel和sms来实现拨打电话和发送短信的操作,比如:
- < a href = “tel:0571″ > 电话 </ a >
- < a href = “sms:0571″ > 短信 </ a >
另外还有一些其他的特殊链接
如email、google map、YouTube和ihpone中启动iTunes等等,但是这些链接并不需要指定如tel和sms之类的特殊URL模式,只要链接地址符合相应的规则就可以了。
=============== 2011.8.5分割线 ===============
8、添加快捷方式到主屏幕
通过在head标签里添加 <link
rel
=
"apple-touch-icon"
href
=
"custom_icon.png"
/> 可以在
safari 里添加页面快捷方式至主屏幕,custom_icon.png 为 57px *57px 的PNG图片,经测试图片可以不放在网站根目录下~
另外据说用 apple-touch-icon 并不能解决 android 下默认浏览器的问题(android下需要先添加书签,然后再编辑书签添加到桌面),用自己的破手机测试却没有发现问题……
不过找到了另一个 rel 属性 apple-touch-icon-precomposed,google 到两个的区别就是是否对图标进行二次处理,apple-touch-icon-precomposed 表示的是采用设计原图标,apple-touch-icon 会给图标增加高光光亮。
摘自:http://sev7n.net/index.php/506.html
相关推荐
### 低碳的终端Web开发——2012阿里技术嘉年华演讲精粹 #### 移动Web开发背景与挑战 在2012年的阿里技术嘉年华上,来自淘宝和一淘的前端工程师分享了关于“低碳的终端Web开发”的演讲内容。随着移动互联网的发展,...
第1章提出了跨终端Web的概念以及实现跨终端Web的多重途径,第2章主要介绍Mobile Web的技术基础,第3~7章是全书的核心,按照开发流程组织逐步讲解了实现跨终端Web所需要的各类技术基础设施,第8章主要介绍了Hybrid ...
【标题】:“Web跨终端开发流程” 在当前的互联网环境中,Web应用已经不再局限于单一的桌面端,而是需要适应各种不同设备,如手机、平板、智能电视等,这就是所谓的“Web跨终端开发”。这一过程涉及到的技术和流程...
第3至第7章构成了全书的核心部分,内容涵盖了从跨终端Web开发的基础设施到完整的技术流程。这部分详细讲解了如何按照开发流程,逐步构建出适应不同终端的Web应用。 第8章讲述了HybridApp的发展历程、实现细节和成熟...
第1章提出了跨终端Web的概念以及实现跨终端Web的多重途径,第2章主要介绍Mobile Web的技术基础,第3~7章是全书的核心,按照开发流程组织逐步讲解了实现跨终端Web所需要的各类技术基础设施,第8章主要介绍了Hybrid ...
Web前端开发和iOS终端开发是两种不同的技术领域,它们各自有着独特的特性和应用场景,但也存在一些共通之处。本文将探讨两者之间的异同,并分享一些iOS开发的实用技巧。 首先,我们来了解一下Web前端开发。Web前端...
基于Android系统的3G移动终端专用WEB浏览器的应用开发,论文
Web前端开发与iOS终端开发的异同(20211215125342).pdf
1. 直播:通过调用插件接口,开发者可以实现实时视频流的播放,让终端用户在Web页面上观看监控画面,实时了解监控区域的情况。 2. 抓图:提供抓取当前视频帧的功能,开发者可以将其用于事件记录或者数据分析,如...
还需关注的是,移动Web开发架构不仅针对当前市场,还需预见未来趋势,如物联网化智能终端的兴起,这要求开发人员对新兴技术保持敏感,并及时将这些技术融入到产品中。同时,开发者还应该充分考虑用户体验(UX),...
SSH远程终端WebConsole是一个利用Golang编程语言,结合WebSocket技术和TermJS库构建的创新性解决方案,旨在提供一种方便、高效的方式来远程控制服务器。这个项目的主要目的是通过Web界面为用户提供一个安全的SSH...
移动互联网终端应用开发技术是当前信息技术领域的重要研究方向,它涉及的技术和模式包括但不限于原生应用开发模式、Web应用开发模式和混合应用开发模式。下面将针对这些技术点展开详细阐述。 原生应用开发模式...
- **跨平台能力**:原生开发受限于特定平台,而混合开发和Web应用则具有较好的跨平台性。 - **维护成本代价**:原生应用由于需要为多个平台编写和维护代码,因此其维护成本较高。 #### (四)后续行动与计划安排 *...
作为一款高效的Web开发工具,WebBuilder的特色是: .基于浏览器的集成开发环境 .丰富的组件库 .开发应用简单快速 .高效率和高稳定性 .跨平台、数据库和浏览器 .服务器端的脚本支持 .智能的数据库访问机制 使用...
在Linux环境下配置Python Web开发环境是一项重要的任务,它涉及到多个组件的集成与配置。这个过程主要包括以下几个关键步骤:安装Python,设置Python开发环境,安装Eclipse集成开发环境(IDE),安装PyDev插件,配置...
随着移动互联网技术的迅猛发展,为iOS等智能终端开发应用程序成为了开发者的重要技能之一。iOS,作为Apple公司推出的移动操作系统,已经广泛应用于iPhone、iPod Touch、iPad等设备中。iOS应用开发主要有原生应用...
在React开发中,有时我们需要为Web应用添加一些特殊的功能,比如模拟终端界面,这可以用于教学、演示或者创建富有互动性的用户体验。`react-Terminal`是一个微型组件,专门用于在React应用程序中实现这样的功能。它...
【标题】: "基于xterm和websocket开发的web终端功能" 这个项目着重于构建一个Web终端,它允许用户通过浏览器进行远程操作,如SSH连接。关键技术和组件包括xterm.js、Java WebSocket以及Spring Boot框架。以下是对...
xterm终端的Docker Web控制台
"Web前端开发职业技能等级证书标准(2022版)实用.pdf" 以下是从该文件中生成的相关知识点: 1. 职业技能概况: * 职业技能名称:Web 前端开发 * 职业技能定义:利用 HTML、CSS、JavaScript、网页开发框架等专业...