Comments (6)
Thanks for creating an issue.
The zoom range increment is determined by the step attribute on the range input. While the plugin does set a default when the input is passed into the plugin for binding, it doesn't mean it can't be changed by setting the attribute on the input. That was my thinking when I wrote that, but maybe it would be helpful to have that as a separate option. It can't really be the increment option as that usually needs to be a larger number. The default step for the range input is 0.05, while the zoom increment defaults to 0.3. Another idea would be for me to not set that attribute at all if a step attribute already exists. Thoughts?
from panzoom.
I am probably misunderstanding something, your patience is appreciated!
This is the range control in my HTML:
<input id="zoom-range" type="range" min="1" max="5" step="1" value="1">
My panzoom code:
$myJqObject.panzoom({
$zoomIn: $("#zoom-in"),
$zoomOut: $("#zoom-out"),
$zoomRange: $("#zoom-range"),
$reset: $("#zoom-reset"),
increment: 1,
minScale: 1,
maxScale: 4,
contain: 'invert'
}).panzoom();
When I leave your code as original, the zoom buttons work as expected, but the range control ignores the step value set in the control...rather than only being able to drag it in discreet chunks, it gains infinite range, and the zoom obeys the input, so rather than only zooming to "1", "2", "3" or "4", it goes in 0.05 increments.
If I change line 818 as I mention above, the range control does what I want, only move in discreet steps. Perhaps panzoom isn't picking up the step from the range control in my particular instance?
from panzoom.
@rogerlos Right, the problem is that when you initialise panzoom on the range input, it's overwriting the step attribute on that input. You could workaround this by setting it in code after you initialise panzoom, but my thoughts were, would you rather specify the step when initialising panzoom or would you rather panzoom simply not overwrite the step attribute that you already have on the input?
from panzoom.
or maybe both?
from panzoom.
Either way (or both!) would be fine, as long as there was a documented way to whip the range control into shape. Many thanks for your responsiveness. If it was both, I would prefer the initialization to take priority over the value set in HTML.
plugin default < HTML control < option set on init < setting it programatically
from panzoom.
Sounds reasonable. I'll have a patch soon.
from panzoom.
Related Issues (20)
- Feature (Epic?): Improve Panzoom for nested content use case (list of components, etc.) HOT 2
- Feature: adjust the zoom rate to increase with element size HOT 9
- Feature: option to pan on wheel event HOT 2
- Cannot find name '.....' in typescript files HOT 1
- Nested CSS scale causes unexpected pinch midpoint and translation behaviors HOT 2
- Feature: disable one axis scaling HOT 1
- Jitter on touch devices when zooming out 'beyond the limit'. HOT 2
- Feature: Infinite horizontal scroll, for a map HOT 2
- Incorrect pan position after zooming with a single pointer.
- Panning and Zooming to centre of a selected element HOT 2
- Pinch And Pan not much precise - at least with Canvas
- cant seem to make sense out of focal
- Feature: adapt proportionally - scale element to fit container HOT 1
- False zoom location with zoomWithWheel when having a large panzoom element HOT 2
- disablePan not working? HOT 3
- Was something like a smart option added? HOT 1
- Logitech smooth scrolling causes wheel to zoom into full min and full max HOT 1
- Pinch in Firefox does not work correctly
- How to avoid triggering the click event of a child element while moving? HOT 1
- How can I change to annotation mode when viewing mode default is for Pan/Zoom? MouseDown event override HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from panzoom.