• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 手势事件
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @jiangtao92-->
5<!--Designer: @piggyguy-->
6<!--Tester: @songyanhong-->
7<!--Adviser: @HelloCrease-->
8
9手势表示由单个或多个事件识别的语义动作(例如:触摸、点击和长按)。一个完整的手势也可能由多个事件组成,对应手势的生命周期。支持的事件有:
10
11**触摸**
12- touchstart:手指触摸动作开始。
13
14- touchmove:手指触摸后移动。
15
16- touchcancel:手指触摸动作被打断,如来电提醒、弹窗。
17
18- touchend:手指触摸动作结束。
19
20**点击**
21
22click:用户快速轻敲屏幕。
23
24**长按**
25
26longpress:用户在相同位置长时间保持与屏幕接触。
27
28具体的使用示例如下:
29
30```html
31<!-- xxx.hml -->
32<div class="container">
33  <div class="text-container" onclick="click">
34    <text class="text-style">{{onClick}}</text>
35  </div>
36  <div class="text-container" ontouchstart="touchStart">
37    <text class="text-style">{{touchstart}}</text>
38  </div>
39  <div class="text-container" ontouchmove="touchMove">
40    <text class="text-style">{{touchmove}}</text>
41  </div>
42  <div class="text-container" ontouchend="touchEnd">
43    <text class="text-style">{{touchend}}</text>
44  </div>
45  <div class="text-container" ontouchcancel="touchCancel">
46    <text class="text-style">{{touchcancel}}</text>
47  </div>
48  <div class="text-container" onlongpress="longPress">
49    <text class="text-style">{{onLongPress}}</text>
50  </div>
51</div>
52```
53
54```css
55/* xxx.css */
56.container {
57  width: 100%;
58  height: 100%;
59  flex-direction: column;
60  justify-content: center;
61  align-items: center;
62}
63.text-container {
64  margin-top: 30px;
65  flex-direction: column;
66  width: 600px;
67  height: 70px;
68  background-color: #0000FF;
69}
70.text-style {
71  width: 100%;
72  line-height: 50px;
73  text-align: center;
74  font-size: 24px;
75  color: #ffffff;
76}
77```
78
79```js
80// xxx.js
81export default {
82    data: {
83        touchstart: 'touchstart',
84        touchmove: 'touchmove',
85        touchend: 'touchend',
86        touchcancel: 'touchcancel',
87        onClick: 'onclick',
88        onLongPress: 'onLongPress',
89    },
90    touchCancel: function (event) {
91        console.info('event is', JSON.stringify(event));
92        this.touchcancel = 'canceled';
93    },
94    touchEnd: function(event) {
95        console.info('event is', JSON.stringify(event));
96        this.touchend = 'ended';
97    },
98    touchMove: function(event) {
99        console.info('event is', JSON.stringify(event));
100        this.touchmove = 'moved';
101    },
102    touchStart: function(event) {
103        console.info('event is', JSON.stringify(event));
104        this.touchstart = 'touched';
105    },
106    longPress: function() {
107        this.onLongPress = 'longPressed';
108    },
109    click: function() {
110        this.onClick = 'clicked';
111    },
112}
113```
114
115![zh-cn_image_00000011](figures/zh-cn_image_00000011.gif)