如何获得 SVG 的纵横比?

pol*_*u2s 2 javascript css svg d3.js

有没有办法获得加载的 svg 的纵横比?我希望能够知道进入该preserveAspectRatio属性的缩放比例。该文件指出,对于meet

  • 纵横比被保留
  • 整个 viewBox 在视口内可见
  • viewBox 尽可能放大,同时仍满足其他条件

有没有办法检索属性在 JS 中以某种方式知道的纵横比?

alt*_*lus 7

获取 viewBox 的值相当容易,如 Phrogz对“通过 javascript 获取原始 SVG viewBox ”的回答中所述:

var svg = document.querySelector('svg');
var box = svg.viewBox.baseVal;
Run Code Online (Sandbox Code Playgroud)

从中获取纵横比只需要简单的数学运算:

var aspectRatio = box.width / box.height;
Run Code Online (Sandbox Code Playgroud)