移动端一些小问题

一.点击穿透:

原因:

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了。

时间: 2024-11-05 11:56:26

移动端一些小问题的相关文章

多多客微信百度支付宝三端合一小程序平台正式上线,集齐BAT,开启新篇章!

多多客DOODOOKE微信.百度.支付宝三端合一小程序SaaS平台今日正式上线! 开年集齐BAT,多多客DOODOOKE与你一起开启新篇章! 一次制作 三端发布 同时管理 商家只需要在多多客管理后台制作一次小程序,即可在微信.百度.支付宝三大平台同时发布和管理. 多多客三端合一小程序平台帮助商家快速布局小程序,跨越小程序开发的高门槛.高成本,一次性获取微信.支付宝.百度全域千亿级流量,同时节省小程序的制作时间和制作成本. 商家可以在同一个后台统一管理微信.百度.支付宝三端用户和订单等数据,大大优

移动端样式小技巧

平时在移动端开发拼页面的过程中总会遇到一些问题,主要是各手机webview样式显示效果不一致造成的.以下总结了一些常见坑和一些小技巧,希望对看官有所帮助! 本文只针对两大手机阵营 Android和IOS 中的魅蓝metal 和 iPhone6进行样式对比. 一.line-height line-height经常用于文字居中,当然也有小伙伴会用上下padding去写.but!不管你用padding还是line-height,不同手机显示效果还是-不一样. 一般会这样写 .demo{ height:

跨端开发小程序

在微信小程序中,每个页面都是由.js..wxss..wxmk和.json四个部分构成,代码结构比较复杂.另外,由于对ES6语法和sass等css预处理支持的不友好,导致开发效率很低,所以早早就有用vue.js来开发小程序的框架,比如webpy和mpvue,但是基本都是单纯的开发微信小程序. 可是,随着微信小程序.网页H5.头条小程序.百度小程序.支付宝小程序.快运用.原生APP的增多,每个都独立开发的话,每个前端估计都要吐血了,所以,就出现了跨端开发的框架.现在基本对多端支持足够好的,就是tar

web端测试小知识

1.测试web端会看请求.数据.定位问题 在浏览器中按F12按钮,然后继续操作 一个操作有时请求很多个接口,点击"preview",查看返回的数据 ==========================================================

移动端各种小技巧及优化体验(网上看到记录一下省的总结了)

1.meta固定语句<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"> width 属性控制设备的宽度,device-width 可以确保它能正确呈现在不同设备上.initial-scale=1.0 确保网页加载时,以 1:1 的比例呈现,不会有任何的缩放. user-scalable=no 可以禁

使用Bootstrap框架时,PC端测试小屏效果正常,移动端失效

在使用Bootstrap框架时,本地调试小尺寸都没问题,一切正常,切换到手机上打开一看,显示的依然是大屏的效果. 解决方法其实很简单. 官网解释: HTML5 文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS 属性需要将页面设置为 HTML5 文档类型.在你项目中的每个页面都要参照下面的格式进行设置. Copy <!DOCTYPE html> <html lang="zh-CN"> ... </html> 移动设备优先 在 Boo

移动端拖动小图标DEMO

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus"> <meta name="Author" content=""> <meta name="K

网页端程序小知识

一.LinQ Distinct某字段去重 新建类GoodsIdComparer,继承 IEqualityComparer<Goods>,实现Equals方法 public class GoodsIdComparer : IEqualityComparer<Goods> { public bool Equals(Goods x, Goods y) { if (x == null) return y == null; return x.Gproducer == y.Gproducer;

移动端兼容小计

1.页面布局: 由于手机型号多样导致页面高宽比非常多,在制作上会有出现不同手机在同一套css下面显示效果不尽如人意,所以需要进行兼容性处理. 方式很多比如直接套用类似bootstrap类的框架,可以使用rem等相对单位.这里我主要使用的是媒体查询和vw和vh单位和百分比来进行处理. 100vw为整个屏幕的宽度,100vh为屏幕高度,其实和百分比的做法很相似,只不过把计算的值单位换成vw或者vh. 2.碰到的兼容问题,主要是ios: a.ios: optgroup使用会出现select的选择文本靠