Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
f77539af
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
f77539af
编写于
5月 26, 2022
作者:
O
openharmony_ci
提交者:
Gitee
5月 26, 2022
浏览文件
操作
浏览文件
下载
差异文件
!4324 drag事件支持dataTransfer
Merge pull request !4324 from Yao.inhome/baihe_drag_datatransfer_0402
上级
9c47655a
33ec5309
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
156 addition
and
8 deletion
+156
-8
zh-cn/application-dev/reference/arkui-js/js-components-common-events.md
...ion-dev/reference/arkui-js/js-components-common-events.md
+156
-8
未找到文件。
zh-cn/application-dev/reference/arkui-js/js-components-common-events.md
浏览文件 @
f77539af
...
...
@@ -47,6 +47,8 @@
| --------- | ------ | --------------------------- |
| type | string | 当前事件的类型,比如click、longpress等。 |
| timestamp | number | 该事件触发时的时间戳。 |
| deviceId
<sup>
6+
</sup>
| number | 触发该事件的设备ID信息。|
| target
<sup>
6+
</sup>
|
[
Target
](
#target对象6
)
| 触发该事件的目标对象。|
**表2**
TouchEvent对象属性列表(继承BaseEvent)
...
...
@@ -84,17 +86,18 @@
**表8**
DragEvent对象属性列表(继承BaseEvent)
<sup>
7+
</sup>
| 属性 | 类型 | 说明 |
| ---------
| ------ |
---------------- |
| ---------
--- | ------------ | ----------------
---------------- |
| type | string | 事件名称。 |
| globalX | number | 距离屏幕左上角坐标原点横向距离。 |
| globalY | number | 距离屏幕左上角坐标原点纵向距离。 |
| timestamp | number | 时间戳。 |
| dataTransfer
<sup>
9+
</sup>
|
[
DataTransfer
](
#datatransfer对象9
)
| 用于传输数据。 |
##
事件对象
##
Target对象<sup>6+</sup>
当组件触发事件后,事件回调函数默认会收到一个事件对象,通过该事件对象可以获取相应的信息。
**target对象:**
| 属性 | 类型 | 说明 |
| -------------------- | ------ | ---------------------------------------- |
...
...
@@ -119,3 +122,148 @@ export default {
}
}
```
## DataTransfer对象<sup>9+</sup>
在拖拽操作的过程中,可以通过dataTransfer对象来传输数据,以便在拖拽操作结束的时候对数据进行其他操作。
### setData<sup>9+</sup>
setData(key: string, value: object): boolean
设置给定key关联的数据。如果没有与该key关联的数据,则将其添加到末尾。如果该key关联的数据已经存在,则在相同位置替换现有数据。
-
参数:
| 参数名 | 参数类型 | 必填 | 描述 |
| ------ | -------- | ---- | ----------------------- |
| key | string | 是 | 数据建值。 |
| value | object | 是 | 要存储的数据。 |
-
返回值:
| 类型 | 说明 |
| ------ | -------- |
| boolean | 执行结果,true表示成功,false表示失败。 |
-
示例:
```js
// setData的value参数,可以是基本数据类型。
dragStart(e) {
var isSetOk = e.dataTransfer.setData('name', 1);
},
// setData的value参数,也可以是对象类型。
dragStart(e) {
var person = new Object();
person.name = "tom";
person.age = 21;
var isSetOk = e.dataTransfer.setData('person', person);
}
```
### getData<sup>9+</sup>
getData(key: string): object
获取给定key关联的数据,如果没有与该key关联的数据,则返回空字符串。
-
参数:
| 参数名 | 参数类型 | 必填 | 描述 |
| ------ | -------- | ---- | -------------------------- |
| key | string | 是 | 数据建值。 |
-
返回值:
| 类型 | 说明 |
| ------ | -------- |
| object | 获取的数据。 |
-
示例:
```js
dragStart(e) {
var person = new Object();
person.name = "tom";
person.age = 21;
e.dataTransfer.setData('person', person);
},
dragEnd(e){
var person = e.dataTransfer.getData('person');
},
```
### clearData<sup>9+</sup>
clearData(key?: string): boolean
删除给定key关联的数据。如果没有与该key关联的数据,则该方法不会产生任何效果。
如果key为空,则删除所有数据。
-
参数:
| 参数名 | 参数类型 | 必填 | 描述 |
| ------ | -------- | ---- | ------------------------------------------ |
| key | string | 否 | 数据建值。 |
-
返回值:
| 类型 | 说明 |
| ------ | -------- |
| boolean | 执行结果,true表示成功,false表示失败。 |
-
示例:
```js
dragEnd(e) {
var isSuccess = e.dataTransfer.clearData('name');
}
```
### setDragImage<sup>9+</sup>
setDragImage(pixelmap: PixelMap, offsetX: number,offsetY: number): boolean
用于设置自定义的拖动图像。
-
参数:
| 参数名 | 参数类型 | 必填 | 描述 |
| -------- | -------- | ---- | ------------------------------------------------------------ |
| pixelmap | PixelMap | 是 | pixelmap为前端传入的图片资源,请参考[PixelMap对象](../apis/js-apis-image.md#pixelmap7)。 |
| offsetX | number | 是 | 相对于图片的横向偏移量。 |
| offsetY | number | 是 | 相对于图片的纵向偏移量 。 |
-
返回值:
| 类型 | 说明 |
| ------ | -------- |
| bool | 执行结果,true表示成功,false表示失败。 |
-
示例:
```js
createPixelMap() {
let color = new ArrayBuffer(4*96*96);
var buffer = new Uint8Array(color);
for (var i = 0; i < buffer.length; i++) {
buffer[i] = (i + 1) % 255;
}
let opts = {
alphaType:0,
editable:true,
pixelFormat:4,
scaleMode:1,
size:{height:96,width:96}
}
const promise = image.createPixelMap(color,opts);
promise.then((data)=> {
console.error('-create pixmap has info message:' + JSON.stringify(data));
this.pixelMap = data;
this.pixelMapReader = data;
})
},
onInit() {
this.createPixelMap
},
dragStart(e) {
e.dataTransfer.setDragImage(this.pixelMapReader, 50, 50);
}
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录