根据鼠标位置缩放到SVG的不同部分

3
所以,我找到了一个脚本,似乎可以实现这一点,但它通过对包含整个SVG内容的<g>应用变换矩阵来缩放它(尽管由于嗅探,它在Opera中不会缩放)。将所有元素都包装在<g>中不是一个选项,因为我正在制作一个图像查看器,可能会加载不同的文件。

在根<svg>上设置transform="matrix(...)"没有效果。在<svg>上设置currentScale可以缩放图片,但是它从左上角而不是从鼠标位置或图像中心进行。并且平移功能也无法工作,因为似乎不可能拖动整个<svg>元素。

操纵viewBox属性似乎有帮助,但是弄清楚必要的值真的很棘手。

那么你能想到在这种情况下进行缩放和平移的方法吗?

你可以在这里下载演示。需要在你的电脑上安装Opera浏览器。
1个回答

3

除了currentScale,还可以修改currentTranslate属性。


谢谢,但规格说明说它是只读的。您能详细说明一下我该如何使用它吗? - Spadar Shut
1
是的,currentTranslate 对象本身是只读的,但您可以写入 currentTranslate.xcurrentTranslate.y - Erik Dahlström

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接