html - 如何按视口(viewport)的百分比平移 SVG 组

标签 html svg

我有一个 svg <rect>那是在 <g> (组),我想缩放它,然后按视口(viewport)的百分比转换它。 svg 中的大多数内容都允许通过数量可笑的选项来指定单位;例如px, em, %, ex, pt, pc, ... 然而,翻译中指定的数字似乎只是像素。

问题是,如果我必须返回并重新计算翻译的像素值,那么我的 svg 将变得依赖于分辨率。然后我,你和每个人都会陷入一个悖论。你可以看出我为什么有点担心。

<svg>
  <g transform="scale(1, 1) translate(0, 0)">
    <rect x="45%" y="25%" height="50%" width="10%"/>
  </g>
</svg>

http://jsbin.com/ubeqot/1/edit

最佳答案

贴上<g>内部元素 <svg>元素并将带有百分比值的 x 和 y 属性添加到内部 <svg>元素来翻译它。

<svg>
  <svg x="10%" y="20%">
    <g transform="scale(1, 1)">
      <rect x="45%" y="25%" height="50%" width="10%"/>
    </g>
  </svg>
</svg>

如果您希望首先应用比例,您可以将 <svg> <g> 内的元素相反。

关于html - 如何按视口(viewport)的百分比平移 SVG 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17098397/

相关文章:

html - 动画时 twitter bootstrap 轮播问题

javascript - 试图用水平滚动条制作固定的表头。如何设置溢出 : auto, 但保持边距透明?

javascript - 如何使用 SVG 图形绘制 RGB 颜色选择器渐变

Safari 中的 SVG 高斯模糊意外地使图像变亮

css - 如何在 Bootstrap 4 中使用 Font Awesome 中的 svg 图标?

php - 在 HTML 表中显示 MySQL 查询

javascript - 从#each 输入列表中获取特定用户

javascript - 计算星期几

php - 获取 SVG 路径的外部坐标(getBBox)?

javascript - 在 svg 动画时间轴中寻找