• 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轴事件指组件被鼠标滚轮滚动或触控板双指沿特定方向(轴)滑动时触发的事件。“轴”指二维坐标系中的方向,分为水平(X轴)和垂直(Y轴)。
10
11>  **说明:**
12>
13>  从API Version 17开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
14
15## onAxisEvent
16
17onAxisEvent(event: Callback\<AxisEvent>): T
18
19鼠标滚轮滚动或触控板双指滑动时触发该回调。
20
21**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。
22
23**系统能力:** SystemCapability.ArkUI.ArkUI.Full
24
25**参数:**
26
27| 参数名 | 类型                              | 必填 | 说明                 |
28| ------ | --------------------------------- | ---- | -------------------- |
29| event  | Callback\<[AxisEvent](#axisevent)> | 是   | 获得[AxisEvent](#axisevent)对象。 |
30
31**返回值:**
32
33| 类型 | 说明 |
34| -------- | -------- |
35| T | 返回当前组件。 |
36
37## AxisEvent
38
39轴事件的对象说明,继承于[BaseEvent](ts-gesture-customize-judge.md#baseevent8)。
40
41**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。
42
43**系统能力:** SystemCapability.ArkUI.ArkUI.Full
44
45### 属性
46
47**系统能力:** SystemCapability.ArkUI.ArkUI.Full
48
49| 名称            | 类型  | 只读|可选                              | 说明                                                    |
50| ------------------- | -----------------------|------|----- | -------------------------------------------------------- |
51| action              | [AxisAction](ts-appendix-enums.md#axisaction17)           | 是   | 否   | 轴事件的动作类型。<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。                   |
52| x                   | number                 | 是   | 否   | 鼠标光标相对于被点击元素左边缘的X坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。  |
53| y                   | number                 | 是   | 否   | 鼠标光标相对于被点击元素上边缘的Y坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。  |
54| windowX             | number                 | 是   | 否   | 鼠标光标相对于当前窗口左上角的X坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 |
55| windowY             | number                 | 是   | 否   | 鼠标光标相对于当前窗口左上角的Y坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 |
56| displayX            | number                 | 是   | 否   | 鼠标光标相对于当前屏幕左上角的X坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 |
57| displayY            | number                 | 是   | 否   | 鼠标光标相对于当前屏幕左上角的Y坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 |
58| scrollStep          | number                 | 是   | 否   | 鼠标轴滚动步长配置。<br/> **说明:** 仅支持鼠标滚轮,取值范围:[0~65535]<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。|
59| propagation         | Callback\<void>        | 是   | 否   | 激活[事件冒泡](../../../ui/arkts-interaction-basic-principles.md#事件冒泡)。<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。   |
60| globalDisplayX<sup>20+</sup> | number | 否 | 是 | 鼠标光标相对于全局屏幕的左上角的X坐标。<br/>单位:vp<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 |
61| globalDisplayY<sup>20+</sup> | number | 否 | 是 | 鼠标光标相对于全局屏幕的左上角的Y坐标。<br/>单位:vp<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 |
62
63### getHorizontalAxisValue
64
65getHorizontalAxisValue(): number
66
67获取此次轴事件的水平轴值。
68
69**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。
70
71**系统能力:** SystemCapability.ArkUI.ArkUI.Full
72
73**返回值:**
74
75| 类型              |说明       |
76| ------- | --------------------------------- |
77| number | 水平轴值。<br>单位:vp |
78
79### getVerticalAxisValue
80
81getVerticalAxisValue(): number
82
83获取此次轴事件的垂直轴值。
84
85**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。
86
87**系统能力:** SystemCapability.ArkUI.ArkUI.Full
88
89**返回值:**
90
91| 类型              |说明       |
92| ------- | --------------------------------- |
93| number | 垂直轴值。<br>单位:vp |
94
95## 示例
96
97该示例中,对按钮设置轴事件,通过滚动鼠标滚轮可获取轴事件的相关参数。
98
99```ts
100// xxx.ets
101@Entry
102@Component
103struct AxisEventExample {
104  @State text: string = ''
105
106  build() {
107    Column() {
108      Row({ space: 20 }) {
109        Button('AxisEvent').width(100).height(40)
110          .onAxisEvent((event?: AxisEvent) => {
111            if (event) {
112              this.text =
113                'AxisEvent:' + '\n  action:' + event.action + '\n  displayX:' + event.displayX + '\n  displayY:' +
114                event.displayY + '\n  windowX:' + event.windowX + '\n  windowY:' + event.windowY + '\n  x:' + event.x +
115                  '\n  y:' + event.y + '\n VerticalAxisValue:' + event.getVerticalAxisValue() +
116                  '\n HorizontalAxisValue:' + event.getHorizontalAxisValue()
117            }
118          })
119      }.margin(20)
120
121      Text(this.text).margin(15)
122    }.width('100%')
123  }
124}
125```
126
127鼠标滚轮滚动时:
128
129![onAxisEvent](figures/onAxisEvent.png)
130