【发布时间】:2017-07-19 20:08:57
【问题描述】:
我一直在努力形成在 SVG 中居中 svg 形状的逻辑。 viewBox 缩放功能很好,但是,我很难使用 viewBox 来使形状居中。
代码如下:
// SCALE & CENTRE THE TEMPLATE ON SCREEN
const svg = document.getElementsByTagName( "svg" )[ 0 ];
const t = document.getElementsByClassName( "templateParent" )[ 0 ];
const svgRect = svg.getBoundingClientRect(),
svgW = svgRect.width,
svgH = svgRect.height,
svgX = svgRect.x,
svgY = svgRect.y;
const aspectRatio = svgW / svgH;
const tRect = t.getBBox(),
tW = tRect.width,
tH = tRect.height,
tX = tRect.x,
tY = tRect.y;
const tmW = tW * 1.25,
tmH = tH * 1.25,
tmX = tX * 1.25,
tmY = tY * 1.25;
const vbH = tmH,
vbW = tmW * aspectRatio,
vbX = tmX * aspectRatio,
vbY = tmY;
【问题讨论】:
-
我使用这种方法进行更多控制。将路径位置存储在数组中。将 SVG 中心平移值应用于路径元素。然后在您想要缩放时将每个位置乘以缩放值。然后将每个位置映射到中心位置。然后重绘它。
标签: javascript svg alignment viewbox