angular - 通过使用路径宽度/高度在角度 7 中动态设置 SVG Viewbox
问题描述
我有一个 json 格式的 svg 图标库,有图标名称的键和渲染图标的路径,这些图标都是不同的维度。我有一个图标组件,它消耗 json 并通过插入与其关联的路径来制作 svg。
这是一个 stackblitz 示例:https ://angular-qhpqpu.stackblitz.io
我面临的问题是,对于宽于高的图标,视图框没有正确的比例。如果图标的高度大于宽度,则它可以完美运行。
当另一个组件使用图标组件时,它永远不会在宽图标上正确对齐,因为 svg 视图框不正确。
如何使视图框与其中的路径完全成比例?
解决方案
为了使视图框与路径完全成比例,您需要确保没有忘记从SVGGraphicsElement.getBBox()方法返回的最小 x 值和最小 y 值:
const { x, y, width, height } = this.iconPath.nativeElement.getBBox();
this.viewBoxValue = `${x} ${y} ${width} ${height}`;
推荐阅读
- php - 如何从附件 ID 获取图像 URL 并将其放置在 Wordpress PHP 中的图像 src 中?
- c++ - 如何在 VS Code 中启用 C++/Qt 的文档注释?
- php - laravel 中的 if 语句
- php - PHP基于“新”数据更新多行
- javascript - 在javascript中用分隔符分割字符串?
- javascript - 如何知道文件下载的进度
- modelica - 关闭卷 - 初始化错误 - Modelica
- node.js - 如何在 https 客户端的服务器上显示图像?
- wpf - 选择行时将可编辑的 DataGridCells 切换到编辑模式?
- javascript - 提取对象属性作为名称