HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。

一开始触摸事件touchstart、touchmove和touchend是iOS版Safari浏览器为了向开发人员传达一些信息新添加的事件。因为ios设备既没有鼠标也没有键盘,所以在为移动Safari浏览器开发交互性网页的时候,PC端的鼠标和键盘事件是不够用的。

在iPhone 3Gs发布的时候,其自带的移动Safari浏览器就提供了一些与触摸(touch)操作相关的新事件。随后,Android上的浏览器也实现了相同的事件。触摸事件(touch)会在用户手指放在屏幕上面的时候、在屏幕上滑动的时候或者是从屏幕上移开的时候出发。下面具体说明:

touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。

touchmove事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。

touchend事件:当手指从屏幕上离开的时候触发。

touchcancel事件:当系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。

上面的这些事件都会冒泡,也都可以取消。虽然这些触摸事件没有在DOM规范中定义,但是它们却是以兼容DOM的方式实现的。所以,每个触摸事件的event对象都提供了在鼠标实践中常见的属性:bubbles(起泡事件的类型)、cancelable(是否用 preventDefault() 方法可以取消与事件关联的默认动作)、clientX(返回当事件被触发时,鼠标指针的水平坐标)、clientY(返回当事件触发时,鼠标指针的垂直坐标)、screenX(当某个事件被触发时,鼠标指针的水平坐标)和screenY(返回当某个事件被触发时,鼠标指针的垂直坐标)。除了常见的DOM属性,触摸事件还包含下面三个用于跟踪触摸的属性。

touches:表示当前跟踪的触摸操作的touch对象的数组。

targetTouches:特定于事件目标的Touch对象的数组。

changeTouches:表示自上次触摸以来发生了什么改变的Touch对象的数组。

每个Touch对象包含的属性如下。

clientX:触摸目标在视口中的x坐标。

clientY:触摸目标在视口中的y坐标。

identifier:标识触摸的唯一ID。

pageX:触摸目标在页面中的x坐标。

pageY:触摸目标在页面中的y坐标。

screenX:触摸目标在屏幕中的x坐标。

screenY:触摸目标在屏幕中的y坐标。

target:触目的DOM节点目标。

上面的属性光这么看,果然非常繁琐,每个属性说的都是那么的细致,只有真刀实枪的来点小例子才能更加明白其中的奥妙。所以小例子如下。

function load (){  document.addEventListener('touchstart',touch, false);  document.addEventListener('touchmove',touch, false);  document.addEventListener('touchend',touch, false);  function touch (event){  var event = event || window.event;  var oInp = document.getElementById("inp");  switch(event.type){  case "touchstart":  oInp.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";  break;  case "touchend":  oInp.innerHTML = "<br>Touch end (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";  break;  case "touchmove":  event.preventDefault();  oInp.innerHTML = "<br>Touch moved (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";  break;  }  }
}
window.addEventListener('load',load, false);

javaScript -- touch事件详解(touchstart、touchmove和touchend)相关推荐

  1. html5触屏滑动事件,HTML5的touch事件详解

    原标题:HTML5的touch事件详解 HTML5中新添加了很多事件,比较常看到的是touch事件,下面来详解下html5中的触摸touch事件. touchstart:触摸开始的时候触发touchm ...

  2. java鼠标js触发事件吗,JavaScript鼠标事件是什么?JavaScript鼠标事件详解

    js中是比较简单的语言,然而js的精髓就是js事件,这也是js当中最重要的部分,很多人对JavaScript鼠标事件是什么还不是很了解,下面我们对JavaScript鼠标事件进行详解. 一:在js中, ...

  3. javaScript-touch事件详解(touchstart、touchmove和touchend)-滑动事件案例

    HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...

  4. JavaScript中 Touch 事件详解

    1. touch 事件简介 touchstart 事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发: touchmove 事件:当手指在屏幕上滑动的时候连续地触发.在这个事件发生期间 ...

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

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

  6. 移动端的touch事件详解

    移动端的touch事件 触摸事件的起源 随着智能手机和平板电脑的普及, 越来越多的人用移动设备浏览网页,我们平时在pc浏览器上用的鼠标事件,比如:click, mouseover等, 已经无法满足移动 ...

  7. touch事件详解(touchstart、touchmove和touchend)

    touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发. touchmove事件:当手指在屏幕上滑动的时候连续地触发.在这个事件发生期间,调用preventDefaul ...

  8. JavaScript常用事件详解

    JS中的事件: 概念:某些组件被执行了某些操作后,触发某些代码的执行. 事件:某些操作.如: 单击,双击,键盘按下了,鼠标移动了 事件源:组件.如: 按钮 文本输入框- 监听器:代码. 注册监听:将事 ...

  9. 移动端开发touchstart,touchmove,touchend事件详解和项目

    移动端开发touchstart,touchmove,touchend事件详解和项目 最近在做移动端的开发,在一个"服务商管理"页面使用到了触摸事件"touchstart& ...

最新文章

  1. php完美实现下载远程图片保存到本地(保存微信头像)
  2. 相对于硬件计算机软件就是,计算机的软件是将解决问题的方法,软件是相对于硬件来说的...
  3. Snmp扫描-snmpwalk、snmpcheck
  4. 2012年初的10个绝对让你惊喜的jQuery插件
  5. 使用cglib创建代理对象
  6. wringPi 初始化GPIO 为上拉_玩转GPIO之PWM点亮呼吸灯(非树莓派)
  7. java 大流量高并发_【BAT面试题】如何应对大流量、高并发??
  8. 【堪萨斯州立大学】电子和计算机工程系智能能源研究室、硬件安全实验室招募博士,提供多个全额奖学金机会...
  9. Hive鉴权方式说明
  10. 堆排序时间复杂度_leetcode刷题(二):排序算法(归并排序,堆排序,桶排序)...
  11. Blog说明--WaaSinn的专业窝
  12. el-select默认选中 显示的是id 不是汉字
  13. svn如何提取文件更新列表
  14. 「ZigBee模块」基础实验(2)按键
  15. 酷比魔方iwork1x i30双系统版,重装单Ubuntu 20.04系统记录(重力传感器、触摸屏、启动菜单、声卡问题、优化充电慢)
  16. zabbix agent安装配置
  17. Python 用pygame 做一个游戏的开始界面(小白第一篇博客)
  18. Linux查找之find/df/du命令
  19. POJ 2924 Gauß in Elementary School(简单题)
  20. 每天干的啥?(2018.11)

热门文章

  1. oracle jmf下载,Ubuntu/Linux下安装JMF播放媒体文件
  2. 【开发】前端工程——ReactJS
  3. Linux下优雅的让程序后台运行
  4. 网站运营活动策划方案模板[转载]
  5. 人人都可以用的项目管理工具,5分钟告诉你如何做好活动策划
  6. lucene in ation 第三章(1) sear…
  7. java调色器_[求助]java中用调色器改变面板的问题
  8. MOSES统计机器翻译系统实验过程
  9. Silverlight Tools 3 安装时发生严重错误
  10. PR/PO一锅粥,关键信息一图兜