移动端WEB开发,click,touch,tap事件
1、click 和 tap 事件比较
两者都会有点击时触发,但是在手机WEB端,click会有200~300ms的延迟,所以用zepto的tap代替click作为点击事件
singleTap 和doubleTap 分别边上单击事件和双击事件。
2、关于tap事件的点透处理
(1) 在使用zepto框架的tap来作为移动设备浏览器的点击事件来规避click事件的延迟响应时,有可能出现点透的情况,即点击会触发非当前层的点击事件,并传递事件。
处理方式:
使用FastClick 库 https://github.com/ftlabs/fastclick
引入FastClick 库,并添加:
$(function()\{
new FastClick(document.body);
\});
然后给需要“无延迟点击”的元素绑定click事件,注意不再是绑定zepto的tap事件
当然,也可以不再body上初始化它,而在某个dom上初始化,这样,只有这个dom和它的子元素才能享受无延迟的点击
当元素绑定Fastclick后,click响应速度比tap还要快。 (没有触发dom的click事件,new 一个 Event支持冒泡的事件,如果是click的话,则隐式调用声明的方法)
(2)为元素绑定touchend事件,并在内部添加e.preventDefault() 方法
$el.on('touchend',function(e)\{
e.preventDefault();
//do some thing
\});
3、 touch事件touch是针对触屏手机上的触屏事件
touchstart : 当手指触摸到屏幕会触发
touchmove: 当手指在屏幕上移动时会触发
touchend :当手指离开屏幕时会触发
touchcancel:: 当手指还没有离开屏幕,有系统的操作。
还没有评论,来说两句吧...