转自:
http://blog.csdn.net/sly94/article/details/51701188
移动端用tap时会有穿透问题

一:click与tap比较

click与tap都会触发点击事件,但是在手机web端,click会有200-300ms的延迟,所以一般用tap代替click作为点击事件。singleTap 和doubleTap分别代表单次点击和双次点击

二:tap的穿透处理

使用zepto框架的tap的点击事件,来规避click事件的延迟响应,会出现穿透,即点击会触发非当前层的点击事件。

三:穿透原因

问题:在HTML5点击了q以后,弹出b的弹框

因为tap事件是通过document绑定了touchstart和touchend事件实现,$('.q')上,当touchend事件冒泡到document上以后执行$(this).hide();此时$('.b'),就处在了页面的最前面

现在touchend冒泡到了document上,并且$('.b')在页面的最前面,然后就触发了click事件

四:解决穿透问题

1.github上有一个叫做fastclick的库,它能规避移动设备上click事件的延迟响应https://github.com/ftlabs/fastclick将它用script标签引入页面(该库支持AMD,可按照AMD规范,用require.js的模块加载器引入),并且在dom ready时初始化在body上,如:

$(function(){

new FastClick(document.body);

})

然后给需要“无延迟点击”的元素绑定click事件(注意不再是绑定zepto的tap事件)即可。

也可以不在body上初始化它,而在某个dom上初始化,这样,只有设个dom和它的子元素才能享受"无延迟"的点击

实践开发中,当元素绑定fastclick后,click响应速度比tap还要快一点。

2.为元素绑定touchend事件,并在内部加上e.preventDefault();

$demo.on('touchend',function(e){

//改变了事件名称,tap是body上才被触发,而touchend是原生的事件,在dom本身上就会被捕获触发

$demo.hide();

e.preventDefault();//阻止“默认行为”

});

五:touch事件

touch是针对触屏手机上的触摸事件。现金大多数触屏手机webkit内核提供了touch事件的监听

包含:touchstart touchmove touchend touchcancel四个事件

touchstart touchmove touchend事件可以类比于mousedown mouseover mouseup的触发

移动端web开发,click touch tap区别相关推荐

  1. 移动端web开发---Touch事件详解

    一.pc端事件回顾 HTML事件.DOM0事件.DOM2事件 事件对象. 如果上述概念不清楚,请先去了解. 二.移动端事件简介 2.1 pc端事件在移动端的问题 ​ 移动设备主要特点是不配备鼠标,键盘 ...

  2. 轻松掌握移动端web开发【尺寸适配】常用解决方案

    本文主要针对初学移动端web开发的读者,笔者也是初学者,文中有众多用词不当之处望读者指正. 前言 从开始做web app开发到现在,一直对移动端的尺寸适配有一种模糊的概念.能说得上来'媒体查询','栅 ...

  3. 移动端 Web 开发踩坑之旅

    前言 最近在一个移动端的 Web 项目中踩了很多的坑,感觉有必要把它们记录下来,分享给即将踏入移动端 Web 开发大门的新人们. 一.从布局说起 移动端的整体布局一般来说可以分为上中下三个部分,分别为 ...

  4. 移动端--web开发

    最近看到群里对关于 移动端 web开发很是感兴趣,决定写一个关于 移动端的web开发 概念或框架(宝庆对此很是纠结).也是因为自己一直从事pc 浏览器 web一直对 移动端的不是很重视,所以趁此机会也 ...

  5. # 移动端web开发

    ### 概述 随着互联网技术的快速发展,加之智能设备的迅速普及,传统网站都已经逐渐向移动端转移和扩展,移动端web开发技术的掌握也显得尤为重要. 移动端Web主要指运行在移动端(手机.ipad)的we ...

  6. 蓝旭前端开发:GITtomcat+nginx原理移动端web 开发

    蓝旭前端开发:GIT+移动端 web 开发 目录 一.==GIT== 1.1 ==Git与GitHub== 1.2 ==GitHub注册和Git的下载安装== 二.==Git的使用== 2.1 ==本 ...

  7. 移动端web开发笔记(一)

    我本来一直在开发PC端的网页的,但是看到很多招聘都要求要有移动端开发的经验,所以开始学习一下! 先搞清楚两个概念,移动端web开发,web app开发 1. 移动web开发(pc端的页面用手机浏览器打 ...

  8. 前端移动端web开发(一)

    一.前端开发 1.前端开发分类: PC端开发:页面主要运行在PC端浏览器中 移动端开发:页面主要运行在手机上 移动web开发 在移动端表现良好的页面,如新浪网 混合式开发(Hybrid App) 也叫 ...

  9. 从零开始学习移动端Web开发

    背景 近年来,随着智能手机的普及,移动端开发受到了异常的关注.从传统的安卓.IOS原生手机系统应用开发,转向了移动端Web开发或者是混合开发,既然有需求,那就让我们一起来学习移动端Web开发吧.本文旨 ...

最新文章

  1. 刻意练习:机器学习实战 -- Task01. K邻近算法
  2. Tianchi发布完整开源数据集!
  3. Science:语言可能并不是推理能力所必需的
  4. UCLA教授遭到举报后被停课!原因竟是不同意学生主张的“考试放水”
  5. Cocos2d-x列表嵌套裁剪bug
  6. sortable vue 排序_VUE +element el-table运用sortable 拖拽table排序,实现行排序,列排序...
  7. 关于开发工具环境准备事项作为故事来处理的对话
  8. flutter 实现不可滚动的ListView构建器
  9. C#控件跨线程内容更新
  10. js 点击闭包_【新年跳槽必备】2020最新(前端原生JS专题)面试题 速领!
  11. matlab无法右键,GUI右键菜单不能在鼠标右键的位置显示
  12. 计算机控制试压,试压泵计算机控制系统电脑控制试压泵自动记录功能
  13. 没想到你是这样的EasyRecovery
  14. word自动生成目录和调整页码字体的方法
  15. 10倍性能提升!英伟达新卡皇降临,图灵架构GTX 20系列发布
  16. 签名工具类---Signature
  17. C++向量夹角公式(带正负)
  18. html5广告具有什么特性,最快认知什么才是HTML5广告!
  19. 开源工具 | 手游自动化框架GAutomator,新增iOS系统和UE4引擎支
  20. Gstreamer - 位置跟踪和定位

热门文章

  1. c++怎么输入esc_绘制CAD图纸的过程中CAD快捷键失灵了怎么办?
  2. c++:MFC _cstring.h库常用函数
  3. 有关matlab拟合工具箱的使用
  4. 中国妇科冲洗器市场规模现状及投资趋势分析报告2022-2028年版
  5. 一个简单的HTTP通讯的例子,使用了CInternetSession,CHttpConnection,CHttpFile三个类
  6. 京东共聚黑山县三方合力-农民丰收节·万祥军:谋定智慧农业
  7. 工业互联网工信部苗圩谈-谋定研究:对话中国经济和信息化
  8. Hadoop实例之利用MapReduce实现日志清洗(附源代码)
  9. 并发之AQS原理(一) 原理介绍简单使用
  10. 作业三——原型化系统——外卖app