`
草原雪花
  • 浏览: 10526 次
社区版块
存档分类
最新评论

移动端touch事件和click事件的区别

js 
阅读更多

 转载,并非原创;

原文地址: http://blog.csdn.net/lululove19870526/article/details/44345759

 

 

移动端touch事件和click事件的区别

1.touch事件

以下是四种touch事件

touchstart:     //手指放到屏幕上时触发

touchmove:      //手指在屏幕上滑动式触发

touchend:    //手指离开屏幕时触发

touchcancel:     //系统取消touch事件的时候触发,这个好像比较少用

每个触摸事件被触发后,会生成一个event对象

2.touch事件和click事件的区别

在移动端,手指点击一个元素,会经过:touchstart --> touchmove -> touchend --》click。

 

touchstart和click的触发条件就有区别,对于手持设备的浏览器:

1.touchstart:在这个dom(或冒泡到这个dom,这当然是废话)上手指触摸开始即能触发
2.click:在这个dom(或冒泡到这个dom,这当然是废话)上手指触摸开始,且手指未曾在屏幕上移动(某些浏览器允许移动一个非常小的位移值),且在这个在这个dom上手指离开屏幕,且触摸和离开屏幕之间的间隔时间较短(某些浏览器不检测间隔时间,也会触发click)才能触发
于是我们可以看到,完全用touchstart代替是不太可取的,但是click在移动手持设备上带来的延迟也是一个问题

 

3.验证touchstart和click事件,看谁先触发。

html
[html] view plain copy
 
  1. <style>  
  2.   .content{  
  3.         height:500px;  
  4.     background:#F00;  
  5.   }  
  6. </style>  
  7. <div class="content"></div>  

js
[javascript] view plain copy
 
  1. var content = document.querySelector(".content");  
  2. content.addEventListener("touchend"function(){  
  3.      content.style.background = "#0F0";  
  4. });  
  5. content.addEventListener("click"function(){  
  6.      content.style.background = "#00F";  
  7. });  

上面逻辑是给content类名的div,绑定一个touch事件和一个click事件。分别让div的背景色变成绿色和蓝色。

手机测试一下,点击一下,div是先变成绿色然后又变成蓝色。

4.只触发touch事件,不去触发click事件
 发现了preventDefault()的方法,阻止事件的默认行为。

[javascript] view plain copy
 
  1. <span style="color:#333333;">var content = document.querySelector(".content");  
  2. content.addEventListener("touchstart"function(e){  
  3.     </span><span style="color:#ff0000;">   e.preventDefault();</span><span style="color:#333333;">  
  4.        content.style.background = "#0F0";  
  5. })  
  6. content.addEventListener("click"function(e){  
  7.         content.style.background = "#00F";  
  8. });</span>  
通过 preventDefault()方法,可以阻止后面事件的触发。



 

分享到:
评论

相关推荐

    vue自定义移动端touch事件之点击、滑动、长按事件

    Vue自定义移动端Touch事件之点击、滑动、长按事件 在移动端开发中,Touch事件是非常重要的一部分,我们经常需要监听用户的触摸操作,如点击、滑动、长按等。Vue框架提供了多种方式来处理Touch事件,但是在实际开发...

    百度 touch js 解决 移动端click点击事件

    这是因为这两个库提供了丰富的DOM操作接口和事件处理机制,可以方便地与touch.js的事件系统集成。首先,你需要在页面中引入这两个库(如果选择使用jQuery,记得确保引入的是其移动端版本),然后引入百度touch.js。...

    移动端事件穿透的原理与解决方案.docx

    这样可以确保touchend事件和click事件按照预期触发。 - 实现示例:可以使用setTimeout函数设置一个短暂的延迟,例如300ms,之后再执行隐藏或移除操作。 #### 示例代码 下面是一个简单的示例,展示了如何使用...

    js移动端事件基础及常用事件库详解

    本文从移动端事件基础讲起,详细介绍了移动事件和PC端事件的区别,以及如何处理移动端特有的TOUCH事件和GESTURE事件。针对移动端click事件的延迟问题,提供了通过TOUCH事件模拟click和使用fastclick.js库的解决方案...

    JS中touchstart事件与click事件冲突的解决方法.docx

    在JavaScript中,`touchstart`事件和`click`事件在移动设备上可能存在冲突,这个问题主要出现在需要同时兼容PC和移动设备的Web应用中。在移动设备上,由于触摸屏的操作特性,`touchstart`事件在用户手指触碰屏幕时...

    解决vue的touchStart事件及click事件冲突问题

    如果浏览器支持触屏,那么调用`touch`事件处理函数,否则调用`click`事件处理函数。在Vue.js中,可以如下实现: ```html &lt;li class="item" v-for="item of letters" :key="item" :ref="item" @click=...

    vue中touch和click共存的解决方式

    在Vue.js开发中,特别是在构建移动端应用时,`touch` 和 `click` 事件的共存问题是一个常见的挑战。在手机设备上,用户通常通过触摸屏幕进行交互,这涉及到 `touch` 事件序列(`touchstart`、`touchmove` 和 `...

    移动端基础事件总结与应用

    本文将深入探讨移动端的基础事件,主要包括触摸事件和设备加速度事件。了解并掌握这些事件,能够帮助开发者创建更丰富的用户体验。 1. 触摸事件 触摸事件是移动端特有的事件,它们对应于用户的触摸屏幕操作。触摸...

    基于jQuery的轻量级touch事件库

    开发者可以通过`.on()`方法轻松地绑定touch事件,也可以使用`.off()`方法解除绑定,这与处理click或mouseover等传统事件并无太大区别。 此外,考虑到在不同设备和浏览器上的兼容性问题,该库可能还包含了对`...

    移动端的支付页面使用jquery移动端taptouch功能

    在支付页面中,我们可以利用jQuery Mobile的页面结构和主题样式,来创建一个整洁、一致的界面,同时利用其触控事件,比如`tap`和`touch`,来替代传统的`click`事件,因为后者在移动端可能会有延迟问题。 `tap`事件...

    jQuery基于$.ajax设置移动端click超时处理方法

    首先需要了解的是,在移动端,触摸事件与click事件的区别。移动设备上触摸事件的发生顺序是:touchstart -&gt; touchmove -&gt; touchend,而标准的click事件是由mousedown -&gt; mousemove -&gt; mouseup组成的。click事件在...

    jquery移动端触摸滑动轮播图特效.zip

    在移动端,传统的鼠标事件如click、mouseover等不再适用,取而代之的是针对触摸设备的事件,如touchstart(触摸开始)、touchmove(触摸移动)和touchend(触摸结束)。jQuery提供了对这些事件的支持,使得在移动...

    移动端Html5中百度地图的点击事件

    `click`事件在移动端可能不会被触发,因为浏览器会等待用户可能的双击操作,导致单击事件延迟执行或不执行。因此,开发者通常需要使用触摸事件来模拟点击行为,比如模仿Zepto库中的`tap`事件。 以下是一个简单的...

    js实现touch移动触屏滑动事件

    在实际应用中,我们可以结合这些事件和属性创建一个简单的图片轮播组件。例如,记录初始触摸位置,计算滑动距离,判断滑动方向,然后根据方向更新轮播图片的位置。在示例代码中,可以看到一个简单的轮播结构,通过...

    解决移动端滚动穿透问题

    总的来说,解决移动端滚动穿透问题需要结合CSS和JavaScript,通过动态控制页面滚动和遮罩层的显示状态来实现。上述示例代码提供了一个基本的实现方案,但具体应用可能需要根据项目需求进行适当的调整和优化。

    Android触摸事件和mousedown、mouseup、click事件之间的关系

    但是在移动终端如iphone、ipod Touch、ipad上的web页面触屏时会产生ontouchstart、ontouchmove、ontouchend、ontouchcancel事件,分别对应了触屏开始、拖拽及完成触屏事件和取消。 当按下手指时,触发ontouchstart...

    HTML5触摸事件演化tap事件介绍

    值得注意的是,触摸事件和鼠标事件在很多情况下会同时触发。为了防止两者产生冲突,可以通过调用event.preventDefault()方法阻止默认的鼠标事件,从而只触发触摸事件。 总结一下,HTML5的触摸事件给移动设备的交互...

Global site tag (gtag.js) - Google Analytics