SVG viewBox 放大中心 (Raphael)

标签 svg zooming raphael center viewbox

我尝试使用 viewBox 在拉斐尔纸上用鼠标滚轮进行缩放。 Here是 JSFiddle 代码。

它有效,但现在我想放大中心,但我不知道从哪里开始。我想我应该更改 viewBox x 和 y 坐标。 我已经尝试过这个(在函数句柄(delta)中):

x = paper.width - viewBoxWidth;
y = paper.height - viewBoxHeight;
paper.setViewBox(x,y,viewBoxWidth,viewBoxHeight);

但没有成功。我将不胜感激任何帮助。谢谢!

最佳答案

对于缩小:

var tempViewBoxWidth = viewBoxWidth;
var tempViewBoxHeight = viewBoxHeight;

viewBoxWidth /= 1.10;
viewBoxHeight /=1.10;

viewBoxX -= (viewBoxWidth - tempViewBoxWidth) / 2;
viewBoxY -= (viewBoxHeight - tempViewBoxHeight) / 2; 

paper.setViewBox(viewBoxX, viewBoxY, viewBoxWidth, viewBoxHeight, false);

关于SVG viewBox 放大中心 (Raphael),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8417089/

相关文章:

javascript - 拉斐尔文本和 Safari

svg - 为什么 svg 中的该图像不显示?

UIScrollView contentLayoutGuide 和缩放居中

javascript - 拉斐尔拖动旋转后的对象

javascript - RaphaelJS - 同步动画

javascript - 将使用 D3js 创建的 SVG 转换为 PNG

jquery - 在滚动上绘制弯曲(响应式)SVG 路径

android - 棘手的 Android 谷歌地图缩放,同时保持中心点

android - 如何在 ImageViewTouch 中使图像适合全屏

javascript - 使用 Snap.svg 在 z 空间中移动 SVG 组