javascript - 使用纯 javascript 围绕中心缩放 SVG

标签 javascript svg scaling

我有一个问题,可能无法很好地理解坐标在 SVG 中的工作原理。我有一个缩放 svg 图形的 javascript 函数,例如:

var g = document.getElementById("graph");
var nm = g.getCTM().multiply(k); //k is the scale factor
g.setAttribute("transform", "matrix(" + nm.a + "," + nm.b + "," + nm.c + "," + nm.d + "," + nm.e + "," + nm.f + ")");

关键是在缩放后中心会稍微平移,因此图形失去了“地理”中心。我如何才能确定我需要哪种翻译才能“围绕”其中心缩放图形?

谢谢。

最佳答案

您是否考虑过其他方法?

如果您只是想放大/缩小 svg,则可能更容易以不同的方式进行,例如: http://www.cyberz.org/blog/2009/12/08/svgpan-a-javascript-svg-panzoomdrag-library/

我前一段时间遇到了同样的问题,最后使用这个创建了我自己的缩放:https://github.com/rstacruz/jquery.transit

基本上,您将 css 变换缩放比例用于 svg 包装器,并且 svg 可以很好地调整。您甚至可以为缩放设置动画。

关于javascript - 使用纯 javascript 围绕中心缩放 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859708/

相关文章:

javascript - 如何缩放条形图的条形以显示包含数据的完整图表

javascript - jQuery - 将高度动画化为自动

javascript - Nuxt.js + vuetify 图像未加载

javascript - SnapSVG : scale transform executing error-free but with no noticeable effect

android - 使用 dp 会处理物理屏幕尺寸吗?

c# - 在 .Net、WinForms 中在运行时添加用户控件缩放时出现问题

javascript - 查找文本并将其删除jquery

javascript - 如何制作一个可以在没有数据的情况下渲染然后用数据渲染的 react 组件?

jquery - 有没有办法制作穿孔文本?

svg - 如何使用 snap.svg 获取 svg 对象的旋转值?