From 1a90fd11be6c0bdae44ca5cac191f655fe2b5f57 Mon Sep 17 00:00:00 2001 From: Juan Di Toro Date: Thu, 6 Feb 2020 22:10:03 -0400 Subject: [PATCH 1/2] Pass some more information onDoubleClick --- src/image-zoom/image-zoom.component.tsx | 2 +- src/image-zoom/image-zoom.type.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/image-zoom/image-zoom.component.tsx b/src/image-zoom/image-zoom.component.tsx index ee8f78e..0f31ae9 100644 --- a/src/image-zoom/image-zoom.component.tsx +++ b/src/image-zoom/image-zoom.component.tsx @@ -122,7 +122,7 @@ export default class ImageViewer extends React.Component { // 认为触发了双击 this.lastClickTime = 0; if (this.props.onDoubleClick) { - this.props.onDoubleClick(); + this.props.onDoubleClick({ pageX: this.doubleClickX, pageY: this.doubleClickY }); } // 取消长按 diff --git a/src/image-zoom/image-zoom.type.ts b/src/image-zoom/image-zoom.type.ts index 623ab5b..42dcbe2 100644 --- a/src/image-zoom/image-zoom.type.ts +++ b/src/image-zoom/image-zoom.type.ts @@ -22,6 +22,11 @@ export interface IOnClick { pageY: number } +export interface IOnDoubleClick { + pageX: number, + pageY: number +} + export class Props { /** * 操作区域宽度 @@ -121,7 +126,7 @@ export class Props { /** * 双击的回调 */ - public onDoubleClick?: () => void = () => { + public onDoubleClick?: (eventParams: IOnDoubleClick) => void = () => { // }; From 4b0f2c760fad98952e16332789aead299de8465b Mon Sep 17 00:00:00 2001 From: Juan Di Toro Date: Mon, 13 Apr 2020 21:57:20 -0400 Subject: [PATCH 2/2] Call onDoubleClick callback with the right parameters --- src/image-zoom/image-zoom.component.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/image-zoom/image-zoom.component.tsx b/src/image-zoom/image-zoom.component.tsx index 0f31ae9..7c4f4b4 100644 --- a/src/image-zoom/image-zoom.component.tsx +++ b/src/image-zoom/image-zoom.component.tsx @@ -121,6 +121,11 @@ export default class ImageViewer extends React.Component { if (new Date().getTime() - this.lastClickTime < (this.props.doubleClickInterval || 0)) { // 认为触发了双击 this.lastClickTime = 0; + + // 因为可能触发放大,因此记录双击时的坐标位置 + this.doubleClickX = evt.nativeEvent.changedTouches[0].pageX; + this.doubleClickY = evt.nativeEvent.changedTouches[0].pageY; + if (this.props.onDoubleClick) { this.props.onDoubleClick({ pageX: this.doubleClickX, pageY: this.doubleClickY }); } @@ -128,10 +133,6 @@ export default class ImageViewer extends React.Component { // 取消长按 clearTimeout(this.longPressTimeout); - // 因为可能触发放大,因此记录双击时的坐标位置 - this.doubleClickX = evt.nativeEvent.changedTouches[0].pageX; - this.doubleClickY = evt.nativeEvent.changedTouches[0].pageY; - // 缩放 this.isDoubleClick = true;