movable-view 长按后,ios会偶现无法触发change事件
- Dominant language
- JavaScript
- Stars
- 41.6k
- Forks
- 3.7k
- Avg merge
- 7h 6m
- Merged PRs (30d)
- 6
Description
### 发行方式
小程序
### 具体平台
ios真机基本都有这个问题,如ios18.3.1;微信开发者工具选择ios设备也能复现(但机率较小)
### 开发环境
Windows
### 项目创建方式
HBuilderX
### 依赖版本
HBuilder X 4.45
uni.getSystemInfo() 返回的部分信息:
```
system: "iOS 10.0.1"
ua: undefined
uniCompileVersion: "4.45"
uniCompilerVersion: "4.45"
uniPlatform: "mp-weixin"
uniRuntimeVersion: "4.45"
version: "8.0.5"
```
### 问题描述
原本是想基于 movable-view 实现长按拖拽排序,但发现ios偶尔在拖拽时不会触发change事件;ps:movable-view拖动效果确实丝滑
### 重现步骤
```html
text
export default {
components:{ },
data() {
return { }
},
onLoad() {
},
onPageScroll(event) {
console.log('0-0-0-0-0-0-0-0-0-0-0-0-0-0-');
},
methods: {
handleDragStart(event) {
console.log('---1111---开始拖动', event);
},
handleLongpress(event) {
console.log('---2222---长按事件', event);
},
handleTouchMove(event) {
console.log('---3333---TouchMove事件', event);
},
handleMoving(event) {
console.log('---4444---change事件', event);
},
handleDragEnd(event) {
console.log('---5555---拖动结束', event);
}
}
}
.test-page {
height: 100vh;
overflow: auto;
movable-view {
display: flex;
align-items: center;
justify-content: center;
height: 150rpx;
width: 150rpx;
background-color: #007AFF;
color: #fff;
}
movable-area {
height: 100vh;
width: 100%;
background-color: #D8D8D8;
overflow: hidden;
}
}
```
正常逻辑来说:会依次触发 `touchstart、longpress、touchmove、change和touchend` 对应的事件,但在ios偶尔只会触发 `touchmove` 却不触发 `change`(其他事件会触发)
因为要基于 change 事件的返回值 `event.detail = {x: x, y: y, source: source}` 去计算元素的位置,不触发change的情况下,拖拽就无效了
### 期望行为
_No response_
### 实际行为
_No response_
### 截图或录屏
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.