diff --git a/src/components/item/item-sliding-gesture.ts b/src/components/item/item-sliding-gesture.ts index e7b0cfe7af..65276ebb35 100644 --- a/src/components/item/item-sliding-gesture.ts +++ b/src/components/item/item-sliding-gesture.ts @@ -4,6 +4,7 @@ import { List } from '../list/list'; import { GesturePriority } from '../../gestures/gesture-controller'; import { PanGesture } from '../../gestures/drag-gesture'; import { pointerCoord } from '../../util/dom'; +import { NativeRafDebouncer } from '../../util/debouncer'; const DRAG_THRESHOLD = 10; const MAX_ATTACK_ANGLE = 20; @@ -19,6 +20,8 @@ export class ItemSlidingGesture extends PanGesture { super(list.getNativeElement(), { maxAngle: MAX_ATTACK_ANGLE, threshold: DRAG_THRESHOLD, + zone: false, + debouncer: new NativeRafDebouncer(), gesture: list._gestureCtrl.create('item-sliding', { priority: GesturePriority.SlidingItem, }) diff --git a/src/components/item/item-sliding.ts b/src/components/item/item-sliding.ts index 50d0b0130b..81a901dc92 100644 --- a/src/components/item/item-sliding.ts +++ b/src/components/item/item-sliding.ts @@ -402,7 +402,10 @@ export class ItemSliding { } this.item.setElementStyle(CSS.transform, `translate3d(${-openAmount}px,0,0)`); - this._zone.run(() => this.ionDrag.emit(this)); + let ionDrag = this.ionDrag; + if (ionDrag.observers.length > 0) { + this._zone.run(ionDrag.emit.bind(ionDrag, this)); + } } private _setState(state: SlidingState) {