JS移动设备触摸事件API

JS移动设备触摸事件API
属性(Attribute) 描述(Description)
identifier unique numeric identifier
target 指代当前点击的DOM对象
screenX 相对于当前屏幕的x坐标
screenY 相对于当前屏幕的y坐标
clientX 相对于当前窗口的x坐标
clientY 相对于当前窗口的y坐标
pageX 相对于父元素的x坐标
pageY

相对于父元素的y坐标

触摸手势事件

事件(Event) 描述(Description)
touchstart 当手指接触元素时触发 等介于 mousedown
touchmove 当已经接触元素的手指开始移动后触发 等介于 mousemove
touchend 当手指离开元素时触发 等介于 mouseend 或 mouseup
touchcancel 当触摸被中断以后触发,例如触摸元素时 手指滑向到元素之外的的区域

TouchLists

List Description
touches 屏幕上所有的当前触摸
targetTouches 该事件是 目标元素上的所有当前触摸
changedTouches 参与当前事件的所有触摸
触摸事件示例

我们定义了一个div,并且加上了一个简单的触摸时间监听来获取元素触摸位置

 
 
  1. <div id="coords"></div>
  2. <div id="touchzone"></div>

#coords用来记录触摸坐标 js 代码

 
 
  1. function init() {
  2. var touchzone = document.getElementById("touchzone");
  3. // 添加一个touchstart事件
  4. touchzone.addEventListener("touchstart", touchHandler, false);
  5. }

touchHandler 处理函数:

 
 
  1. function touchHandler(event) {
  2.  
  3. var coords = document.getElementById("coords");
  4. // 监听触摸坐标位置
  5. coords.innerHTML = 'x: ' + event.touches[0].pageX + ', y: ' + event.touches[0].pageY;
  6. }

事件演示 你可以不停的触摸右侧演示元素 来获取触摸的位置

x: 688, y: 2094
显示元素上的 所有触控点

html dom

 
 
  1. <canvas id="mycanvas" width="662" height="373" style="border: 1px solid #ccc">
  2. Canvas element not supported<br />
  3. </canvas>

javascript

 
 
  1. //获取元素
  2. var canvas = document.getElementById('mycanvas');
  3. // 2d canvas
  4. var ctx = canvas.getContext("2d");
  5. // 为了让我们看清楚点击位置 所以需要绘制触控点
  6. ctx.fillRect(event.touches[0].pageX-offset.left, event.touches[0].pageY-offset.top, 5, 5);

完整的页面源码:

 
 
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>HTML5 input </title>
  5. <script>
  6. function init() {
  7. var touchzone = document.getElementById("mycanvas");
  8. touchzone.addEventListener("touchstart", draw, false);
  9. }
  10. function draw() {
  11. var canvas = document.getElementById('mycanvas');
  12. if(canvas.getContext) {
  13. var ctx = canvas.getContext("2d");
  14. ctx.fillRect (event.touches[0].pageX, event.touches[0].pageY, 5, 5);
  15. }
  16. }
  17. </script>
  18. </head>
  19. <body onload="init()">
  20. <canvas id="mycanvas" width="500" height="500">
  21. Canvas element not supported.
  22. </canvas>
  23. </body>
  24. </html>

效果演示


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值