移动端300ms延迟由来及解决方案
1、300ms延迟由来
300 毫秒延迟的主要原因是解决双击缩放(double tap to zoom)。双击缩放,顾名思义,即用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例。 那么这和 300 毫秒延迟有什么联系呢? 假定这么一个场景。用户在 iOS Safari 里边点击了一个链接。由于用户可以进行双击缩放或者双击滚动的操作,当用户一次点击屏幕之后,浏览器并不能立刻判断用户是确实要打开这个链接,还是想要进行双击操作。因此,iOS Safari 就等待 300 毫秒,以判断用户是否再次点击了屏幕。 鉴于iPhone的成功,其他移动浏览器都复制了 iPhone Safari 浏览器的多数约定,包括双击缩放,几乎现在所有的移动端浏览器都有这个功能。、
2、解决方案
(1)添加viewpoint meta标签
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
(2)FastClick
https://github.com/ftlabs/fastclick
移动端事件触发顺序:在移动端,手指点击一个元素,会经过:touchstart --> touchmove -> touchend -->click。
fastclick.js的原理是:FastClick的实现原理是在检测到touchend事件的时候,会通过DOM自定义事件立即出发模拟一个click事件,并把浏览器在300ms之后真正的click事件阻止掉。
相关推荐
ghjk0 2020-09-24
PncLogon 2020-09-24
杏仁技术站 2020-09-18
AI人工智能 2020-09-18
木叶 2020-09-11
淼寒儿 2020-09-09
一青年 2020-08-13
JackyCan 2020-08-13
JKjiang 2020-07-30
malonely 2020-07-20
加油奋斗吧 2020-07-04
quanquanxiu 2020-06-16
樱花落瓣 2020-06-01
ITstudied 2020-05-17
yuanxiaogang 2020-05-07
前端学习笔记 2020-05-05
aaLiweipeng 2020-04-18
owilson 2020-04-16