移动端点击与点击穿透
来源:互联网 发布:回收站数据恢复免费版 编辑:程序博客网 时间:2024/05/22 00:16
移动端click事件的300ms延迟
由于移动端会有双击缩放的这个操作,因此浏览器在click之后要等待300ms,看用户有没有下一次点击,也就是这次操作是不是双击。
解决方案:
- 浏览器开发商
如果在meta中设置了禁止缩放:
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scaleble = no" />
表明这个页面是不可缩放的,那双击缩放的功能就没有意义了,此时浏览器可以禁用默认的双击缩放行为并且去掉300ms的点击延迟。
但是这种方案的缺点就是必须完全禁用缩放,而我们想禁用的只有双击缩放这个操作。
另外,如果更改了视口的默认宽度:
<meta name="viewport" content="width=device-width"/>
如果设置了上述meta标签,那浏览器就可以认为该网站已经对移动端做过了适配和优化,就无需双击缩放操作了。这种方案比较适合,因为它没有完全禁用缩放,而是禁用了浏览器默认的双击缩放行为。
- 使用touchstart、touchend等事件模拟click
很多库如zepto都会提供tap事件,用于移动端的click。这种tap事件一般都是使用touchstart、touchmove、touchend来模拟一次click。
点击穿透
点击穿透的场景:上层元素A绑定了tap事件,下层元素B绑定了click事件。当我们点击A时,A元素隐藏,此时也会触发下层B元素的click事件。
原因就是当上层A的tap事件发生后,其实是touchend结束后,会触发click事件,因为这几个事件的触发顺序是touchstart-touchmove-touchend-click。因此当click事件触发300ms后,上面的A元素已经消失,此时真正点击的就相当于下层的B元素,因此会发生点击穿透事件。
解决方案:
- 都使用click事件或者都是用tap事件
- 在click事件触发前阻止它。比如在touchend事件中使用e.preventDefault()来阻止后续的click事件。
- 使用fastclick库。fastclick是一个专门解决300ms点击延迟的库。
阅读全文
0 0
- 移动端点击与点击穿透
- 移动端点击击穿与百度广告点击统计
- H5移动页面的touch事件与点击穿透问题
- Zepto tap 穿透bug、解决移动端点击穿透问题
- 移动页面【点击穿透】问题
- 初学Phaser.js之添加菜单与移动端点击
- 1.移动端与pc端点击事件的不同:
- 移动端 总是点击两次 点击穿透
- 【笔记】移动端点击处理
- 移动端点击的坑。。
- 移动端点击某个按钮触发的时候,出现点击状态的方法
- 移动页面点击穿透问题解决方案
- 移动页面点击穿透问题解决方案
- h5 移动端 点击穿透 解决办法
- 移动端大坑之点击穿透
- pc端点击事件和移动端点击事件区别
- 点击穿透与FastClick浅读
- 移动端300ms点击延迟和点击穿透问题
- 中企动力与九盈集团同行 布局互联网金融行业
- <转载> 如何转载一篇博客
- 【转】POJ 3378 Crazy Thairs(数据集中+DP+树状数组+高精度)
- 自制疲劳检查摄像头
- java调用命令提示符并返回结果(中文无乱码)
- 移动端点击与点击穿透
- c++ stl multimap基本操作使用技巧详细介绍
- Express 4.x中间件multer的详细解析
- 第一题“最大”点集
- Qt学习——qt软件启动界面
- android实现双击事件详解
- leetcode 34. Search for a Range (binary search std::lower_bound)
- Java网络编程—(1)网络的简介
- (lintcode)第3题统计数字