web App 开发技术要点总结

本文探讨了移动Web开发中常见的问题及解决方案,如viewport设置确保页面正确显示,阻止数字被识别为电话号码的方法,以及触摸事件的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=large]作为一名前端开发工程师,从桌面浏览器到移动设备上开发过度时总会遇到一些问题,下面我们就从我自己遇到问题开始学习和总结一些技术要点:

1. viewport:
大家在手机web开发中有没有遇到这样一个问题,在pc浏览器中显示正常但是到了手机浏览器中显示却密密麻麻,字体等变得很小掉,看都看不清楚。那是因为没有设置viewport,也就是可视区域。对于桌面浏览器,我们都很清楚viewport是什么,就是除去了所有工具栏、状态栏、滚动条等等之后可查看网页的区域,这是真正有效的区域。由于移动设备屏幕宽度不同于传统web,因此我们需要改变viewport;[/size]
viewport设置其实很简单,就一个meta
<meta id="viewport" name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>

content中参数意思
width              //  viewport 的宽度 (范围从200 到10,000,默认为980 像素) 
height // viewport 的高度 (范围从223 到10,000)

initial-scale // 初始的缩放比例 (范围从>0 到10)

minimum-scale // 允许用户缩放到的最小比例
maximum-scale // 允许用户缩放到的最大比例

user-scalable // 用户是否可以手动缩 (no,yes)

[size=large]在设置了initial-scale=1 之后,我们终于可以以1:1 的比例进行页面设计了。关于viewport,还有一个很重要的概念是:iphone 的safari 浏览器完全没有滚动条,而且不是简单的“隐藏滚动条”,是根本没有这个功能。iphone 的safari 浏览器实际上从一开始就完整显示了这个网页,然后用viewport 查看其中的一部分。当你用手指拖动时,其实拖的不是页面,而是viewport。浏览器行为的改变不止是滚动条,交互事件也跟普通桌面不一样。[/size]

[size=large]2.在移动设备中我们网页中的数字会自动识别为电话号码,解决办法也只要设置一个meta就ok,如下:[/size]
<meta content="telephone=no" name="format-detection" /> 


[size=large]3.事件使用
在webapp开发中它包含以下三类触摸事件:
[/size]

// 手势事件
touchstart //当手指接触屏幕时触发
touchmove //当已经接触屏幕的手指开始移动后触发
touchend //当手指离开屏幕时触发
touchcancel //当系统停止跟踪触发,关于此类事件的确切触发时间,文档中没有明确说明

// 触摸事件
gesturestart //当两个手指接触屏幕时触发
gesturechange //当两个手指接触屏幕后开始移动时触发
gestureend //离开时触发

// 屏幕旋转事件
onorientationchange


[size=large]每个触摸事件都包括了三个触摸列表:[/size]
 
touches:当前位于屏幕上的所有手指的一个列表。
targetTouches:位于当前DOM元素上的手指的一个列表。
changedTouches:涉及当前事件的手指的一个列表。


[size=large]每个触摸对象包含了以下触摸信息:[/size]
clientX / clientY:// 触摸点相对于浏览器窗口viewport的位置  
pageX / pageY:// 触摸点相对于页面的位置
screenX /screenY:// 触摸点相对于屏幕的位置
identifier: // touch对象的unique ID
target: //DOM元素,是动作所针对的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值