Skip to content

Commit de33162

Browse files
committed
feat:options配置parentTouch
1 parent 6b00d62 commit de33162

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

packages/core/src/canvas/canvas.ts

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,15 @@ export class Canvas {
359359
this.externalElements.ondrop = this.ondrop;
360360
this.externalElements.oncontextmenu = (e) => e.preventDefault();
361361
this.store.options.interval = 50;
362-
this.externalElements.ontouchstart = this.ontouchstart;
363-
this.externalElements.ontouchmove = this.ontouchmove;
364-
this.externalElements.ontouchend = this.ontouchend;
362+
if(this.store.options.parentTouch){
363+
this.parentElement.ontouchstart = this.ontouchstart;
364+
this.parentElement.ontouchmove = this.ontouchmove;
365+
this.parentElement.ontouchend = this.ontouchend;
366+
}else{
367+
this.externalElements.ontouchstart = this.ontouchstart;
368+
this.externalElements.ontouchmove = this.ontouchmove;
369+
this.externalElements.ontouchend = this.ontouchend;
370+
}
365371
this.externalElements.onmousedown = (e) => {
366372
if(this.isMobile){
367373
return;
@@ -9250,9 +9256,15 @@ export class Canvas {
92509256

92519257
this.externalElements.ondragover = (e) => e.preventDefault();
92529258
this.externalElements.ondrop = undefined;
9253-
this.externalElements.ontouchstart = undefined;
9254-
this.externalElements.ontouchmove = undefined;
9255-
this.externalElements.ontouchend = undefined;
9259+
if(this.store.options.parentTouch){
9260+
this.parentElement.ontouchstart = undefined;
9261+
this.parentElement.ontouchmove = undefined;
9262+
this.parentElement.ontouchend = undefined;
9263+
}else{
9264+
this.externalElements.ontouchstart = undefined;
9265+
this.externalElements.ontouchmove = undefined;
9266+
this.externalElements.ontouchend = undefined;
9267+
}
92569268
this.externalElements.onmousedown = undefined;
92579269
this.externalElements.onmousemove = undefined;
92589270
this.externalElements.onmouseup = undefined;

packages/core/src/options.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ export interface Options {
8888
disableClipboard?: boolean; //是否禁止系统剪切板
8989
drawingLineLength?: number; //绘制过程中允许的最大长度,0表示不限
9090
disableTouchPadScale?: boolean; //是否禁止触控板缩放
91+
parentTouch?: boolean; //移动端是否父级监听touch事件
9192
cdn?: string;
9293
x?: number;
9394
y?: number;
@@ -189,6 +190,7 @@ export const defaultOptions: Options = {
189190
disableClipboard: false,
190191
drawingLineLength: 0,
191192
disableTouchPadScale: false,
193+
parentTouch: true,
192194
cdn: '',
193195
polylineSpace: 10,
194196
domShapes: [],

0 commit comments

Comments
 (0)