Skip to content

Commit 074d3a7

Browse files
committed
docs(events): add touch
1 parent 32b3a9b commit 074d3a7

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

chapters.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@
5959
- events/model.md: 事件模型
6060
- events/event.md: Event 对象
6161
- events/mouseevent.md: MouseEvent 接口,WheelEvent 接口
62-
- events/touchevent.md: Touch 接口,TouchList 接口,TouchEvent 接口
6362
- events/keyboardevent.md: KeyboardEvent 接口,InputEvent 接口,CustomEvent 接口
64-
- events/drag.md: 触摸操作
63+
- events/touch.md: 触摸操作
64+
- events/drag.md: 拖拉操作
6565
- events/globaleventhandlers.md: GlobalEventHandlers 接口
6666
- bom/: 浏览器模型
6767
- bom/cookie.md: Cookie
Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Touch 接口,TouchList 接口,TouchEvent 接口
1+
# 触摸操作
22

33
## 触摸操作概述
44

@@ -202,3 +202,37 @@ function touches_in_target(ev) {
202202

203203
上面代码用来判断,是否所有触摸点都在目标元素内。
204204

205+
## 触摸事件的种类
206+
207+
触摸引发的事件,有以下几种。可以通过`TouchEvent.type`属性,查看到底发生的是哪一种事件。
208+
209+
- `touchstart`:用户开始触摸时触发,它的`target`属性返回发生触摸的元素节点。
210+
- `touchend`:用户不再接触触摸屏时(或者移出屏幕边缘时)触发,它的`target`属性与`touchstart`事件一致的,就是开始触摸时所在的元素节点。它的`changedTouches`属性返回一个`TouchList`实例,包含所有不再触摸的触摸点(即`Touch`实例对象)。
211+
- `touchmove`:用户移动触摸点时触发,它的`target`属性与`touchstart`事件一致。如果触摸的半径、角度、力度发生变化,也会触发该事件。
212+
- `touchcancel`:触摸点取消时触发,比如在触摸区域跳出一个情态窗口(modal window)、触摸点离开了文档区域(进入浏览器菜单栏)、用户的触摸点太多,超过了支持的上限(自动取消早先的触摸点)。
213+
214+
下面是一个例子。
215+
216+
```javascript
217+
var el = document.getElementsByTagName('canvas')[0];
218+
el.addEventListener('touchstart', handleStart, false);
219+
el.addEventListener('touchmove', handleMove, false);
220+
221+
function handleStart(evt) {
222+
evt.preventDefault();
223+
var touches = evt.changedTouches;
224+
for (var i = 0; i < touches.length; i++) {
225+
console.log(touches[i].pageX, touches[i].pageY);
226+
}
227+
}
228+
229+
function handleMove(evt) {
230+
evt.preventDefault();
231+
var touches = evt.changedTouches;
232+
for (var i = 0; i < touches.length; i++) {
233+
var touch = touches[i];
234+
console.log(touch.pageX, touch.pageY);
235+
}
236+
}
237+
```
238+

0 commit comments

Comments
 (0)