Question:
我想限制 SVG 的平移,这样当没有应用缩放时,就不可能进行平移,但是当您放大时,您可以在 SVG 的边界内平移。
视觉示例:在下图中,中心的缩放视口可以平移到 SVG 的边缘,但不能进一步平移。
然而这与泛示例 http://ariutta.github.io/svg-pan-zoom/demo/limit-pan.html给定的情况下,我无法研究如何改变它以使其表现得如此。你会怎么做? (我是否还缺少一种简单的内置方法来做到这一点)?
我在尝试解决此问题时遇到的问题
- 每个限制都设置了正确方向上允许的像素移动。即,bottomLimit = 200 允许您向上移动 200 像素。因此,在默认缩放下,我需要将所有限制设置为 0,但是我无法弄清楚如何识别默认缩放,因为 realZoom 根据浏览器窗口大小而变化。
- 在视觉示例中,如果我们想设置 BottomLimit 来正确绑定 SVG,它需要等于 x,但我不知道如何计算 x。 (topLimit 需要等于 y 等)
基于https://jsfiddle.net/930j458h/3/ https://jsfiddle.net/930j458h/3/例子:
- 检查值
panZoom.getSizes()
- 弄清楚
getSizes().width
是整个 SVG 块的宽度,并且getSizes().viewBox.width
是viewBox的大小。我们对 viewBox 感兴趣。
- Replace
getSizes().width
with getSizes().viewBox.width
一切都神奇地运作
https://jsfiddle.net/930j458h/4/ https://jsfiddle.net/930j458h/4/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)