Code Monkey home page Code Monkey logo

Comments (6)

timmywil avatar timmywil commented on June 30, 2024

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.

rogerlos avatar rogerlos commented on June 30, 2024

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.

timmywil avatar timmywil commented on June 30, 2024

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

timmywil avatar timmywil commented on June 30, 2024

or maybe both?

from panzoom.

rogerlos avatar rogerlos commented on June 30, 2024

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.

timmywil avatar timmywil commented on June 30, 2024

Sounds reasonable. I'll have a patch soon.

from panzoom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.