panzoom
panzoom copied to clipboard
Support a pan min offset / distance
Subject of the issue
I'd like to be able to configure an offset or distance within which a pan doesn't start. Typically when dragging there is a margin of error to distinguish between a press (with wiggle) and a drag which tends to be implemented as a minimum distance a drag must move before recognising the event as a drag instead of a blurry press.
Your environment
- Version of panzoom: 4.0
- Browser and browser version: Google Chrome | 79.0.3945.117 (Official Build) (64-bit) (cohort: Stable)
Expected behaviour
- Configure panzoom with an option like
minPanDistance: 5
- When panning, don't start the pan action until the mouse/pointer has moved by 5 pixels
- After the 5px threshold distance has been passed continue the pan as if the threshold didn't exist - i.e. if the distance is 6px then the pan should be 6px and not 1px (6px - 5px)
Actual behaviour
No option exists, the pan begins immediately. This can cause UX issue when clicking or tapping on buttons/elements that are within the pan area as they can move unintentionally.
Steps to reproduce
This is a new feature, it can always be reproduced.
Thanks for opening an issue, and the feature request. I'd like to see more interest in this before implementing it. I've added this to the feature request list.
Thanks, is there an alternative or work around that can be used instead to accomplish this without the feature being added to the library?
@mattnathan I missed your question. There is not currently a way to do this in the library. You'd probably need your own pointer events. That's a point in this feature's favor.
@timmywil I don't suppose there's any information on how long the 'collecting interest' phase lasts?
I'm approaching a release date for the project I'm working on that requires this feature and need to plan whether I'm going to fork and fix or wait for it to be released as part of this library.
No pressure, just for planning
Sorry I didn't get back right away. There's not really a set time on how long a feature can be collecting interest. That said, while this feature only has 2 votes, it has the most of the 3 features in the list so far. I'm not opposed to doing it, but I probably won't have time in the near future. If you want to fork and fix, that could be the start of a PR! :)
@timmywil I forked and applied the change I needed. I've created a PR which works for my application, whether it's the correct way to do it for this project I don't know. Hopefully it'll help get the feature landed here anyway.
Any plan to incorporate this in the near future, or a workaround implemented since this was opened three years ago?