ionic-team / ionic-team/ionic-framework

bug: item-sliding animation jumps when using multi touch

Open
#29,085 1 comment 0 reactions 0 assignees View on GitHub
package: core type: bug
Dominant language
TypeScript
Stars
52.7k
Forks
13.3k
Avg merge
1d 15h
Merged PRs (30d)
51

Description

### Prerequisites

- [X] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#creating-an-issue).
- [X] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [X] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already report this problem, without success.

### Ionic Framework Version

v7.x

### Current Behavior

When multiple fingers are on the screen and move around, the `ion-item-sliding` tries to listen to both touches. This causes glitchy behavior.

I found this out while testing certain [iOS accessibility features](https://support.apple.com/guide/iphone/zoom-in-iph3e2e367e/ios) (3-finger zoom), discovering that `ion-item-sliding` can conflict with that.

### Expected Behavior

`ion-item-sliding` should only activate if there is one finger on the screen.

This is how the iOS Mail app works - the sliding items only activates when there is one finger on the screen. This prevents conflict with other gestures.

Additionally, if the native sliding item is already activated and another finger is placed on the screen, it does not glitch.

### Steps to Reproduce

1. Place two or more fingers on any `ion-item-sliding`.
2. Try moving them around.
3. Observe glitches

### Code Reproduction URL

https://github.com/aeharding/sliding-multi

### Ionic Info

Ionic:

Ionic CLI : 7.1.1 (/Users/aeharding/.nvm/versions/node/v20.8.1/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/react 7.7.3

Capacitor:

Capacitor CLI : 5.7.0
@capacitor/android : 5.7.0
@capacitor/core : 5.7.0
@capacitor/ios : 5.7.0

Utility:

cordova-res : not installed globally
native-run : not installed globally

System:

NodeJS : v20.8.1 (/Users/aeharding/.nvm/versions/node/v20.8.1/bin/node)
npm : 10.1.0
OS : macOS Unknown

### Additional Information

This may be related to #21136.

https://github.com/ionic-team/ionic-framework/assets/2166114/0a4a54e1-2223-4191-b4fa-d1f2361b4a18

Contributor guide

Open the contributing guide

Research direction

Start with the ion-item-sliding component and reproduce the issue using the linked sliding-multi example with two or more fingers. Trace how touch input is handled while sliding is inactive and already active. Done means single-finger sliding remains functional, multi-touch does not cause jumps, and the reported reproduction no longer glitches.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.