首页 > 代码库 > 移动端一些小问题
移动端一些小问题
一.点击穿透:
原因:
1. touch事件300ms后,触发click事件;
2. 混用touch和click会导致点透问题。
解决思路:
1.不要混用touch和click;
2.阻止掉 touch之后的click。
解决方案:
1.tap后延迟350ms再隐藏mask;
2.pointer-events:mask隐藏后,给按钮下面元素添上 pointer-events: none;
样式,让click穿过去,350ms后去掉这个样式,恢复响应;
3.fastclick
4.只用click
5.只用touch
二.ios微信不支持position:fixed属性
解决方案:
1.先显示假的输入框,点击后出现真的;
2.用CSS布局;
三.retina屏1px问题
原因:
设备像素比(device pixel ratio,简称dpr) = 物理像素 / 设备独立像素
;
css中的1px,也就是设备独立像素,并不等于移动设备的1px(物理像素
),这些由于不同的手机有不同的设备像素比。
解决方案:
1.通过viewport + REM的方式来兼容。
目前这种兼容方案相对比较完美,适合新项目(老项目改用REM单位成本会比较高)。淘宝M首页就是这种方案。
在devicePixelRatio = 2 时,输出viewport
<meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no">
在devicePixelRatio = 3 时,输出viewport
<meta name="viewport" content="initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no">
同时设置对应viewport的rem基准值,这种方式就可以像以前一样轻松愉快的写1px了。
移动端一些小问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。