Coder Social home page Coder Social logo

Comments (3)

Fuzzyma avatar Fuzzyma commented on June 13, 2024

Didnt find a mistake after having a short look. Might be a bug. Have to look into that deeper. Sorry for the inconvinience!

from svg.panzoom.js.

benjaminbours avatar benjaminbours commented on June 13, 2024

Same issue for me πŸ‘

After investigation about the zoom, I realised the difference between a zoom from the root svg and the nested one is that for the root, there are values for the clientWidth and clientHeight properties, when for the nested one I always get 0.

Looking at the current master of the core library I found this commit svgdotjs/svg.js@a6dae04, which differ from the current released code, but it will make it clearer why it's not zooming when released.

So first it's not an issue with this plugin, it comes from the main library. And then, my current fix is this

      const nested = draw
        .nested()
        .size("50%", "100%")
        .attr({
          style: "width: 50%; height: 100%;",
        })
        .panZoom({ zoomMin: 0.1, zoomMax: 20, zoomFactor: 0.5 });

Apparently, the attributes width and height are not detected properly by the zoom function, and in the current released code, when it's the case the fallback is to get value from the style.

from svg.panzoom.js.

Fuzzyma avatar Fuzzyma commented on June 13, 2024

Thank you for investigating @benjaminbours. I simply hadnt the brain ressources atm...
But after knowing the bug its pretty clear πŸ˜„

Yes, clientHeight and width is only defined on a root element because the specs says so. Thats why we try to get the dimensions differently. In the current released version (3.0.16) there was an additional getComputedStyle check for width and height but that often just leads to "auto" if no stye is set. Thats why in 3.1.0 it was remoed and the zoom function will throw if there is no width/height set on the element or clientHeight/width is not usable.

But I just realized that it wont throw with percentage values which it shoult... need to a add a check for that

PS: in 3.1.0 your fix therefore wont work.

from svg.panzoom.js.

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.