panzoom icon indicating copy to clipboard operation
panzoom copied to clipboard

Support a pan min offset / distance

Open mattnathan opened this issue 5 years ago • 7 comments

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

  1. Configure panzoom with an option like minPanDistance: 5
  2. When panning, don't start the pan action until the mouse/pointer has moved by 5 pixels
  3. 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.

mattnathan avatar Jan 14 '20 11:01 mattnathan

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.

timmywil avatar Jan 14 '20 15:01 timmywil

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 avatar Jan 14 '20 17:01 mattnathan

@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 avatar Jan 24 '20 16:01 timmywil

@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

mattnathan avatar Feb 04 '20 17:02 mattnathan

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 avatar Feb 05 '20 16:02 timmywil

@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.

mattnathan avatar Feb 06 '20 15:02 mattnathan

Any plan to incorporate this in the near future, or a workaround implemented since this was opened three years ago?

djfariel avatar Jul 29 '23 00:07 djfariel