javascript - 更改最外面的 svg 大小,但保留该 svg 内所有内容的大小
问题描述
是否可以更改最外面的svg
大小但保留里面所有内容的大小svg
?
我无法在 Internet 上找到解决方案。
为了避免x-y problem
这种情况,我将描述我的用例。
我有一个
div
.div
有overflow-y: scrollable
。_ 因此,这意味着当我的最外层svg
(它是 的直接子代div
)将变得大于 时,div
我将能够滚动查看整个svg
.起初, 的 width 和 height 属性
svg
设置为100%
。当有必要时,我会
svg
垂直缩放(即增加视口),当svg
不适合时,div
我会得到一个不错的滚动条。问题是里面的一切
svg
都是相对的svg
,当svg
被缩放时,内容也会被缩放,我想避免内容缩放。
我想过viewBox
在秤时使用并更改它svg
,但我viewBox
最初没有,所以我不能这样做。
尝试使用 aviewBox
解决问题未成功,因为该viewBox
属性会影响其他svg
s。这是我svg
没有viewBox
应用属性:
这是我正在应用svg
的viewBox
属性:
这里是 upper svg
,它与 lower没有任何联系,但是在更改lower 的属性svg
后仍然会受到影响:viewBox
svg
解决方案
问题是 svg 中的所有内容都是相对于 svg 的,当 svg 被缩放时,内容也会被缩放,我想避免内容缩放。
要阻止这种情况,您需要确保viewBox
纵横比与 SVG 视口纵横比保持相同。
例如,如果您将 SVG 缩放为width="200"
, height="600"
(即 1:3 的纵横比),那么您需要确保您的 viewBox 具有相同的纵横比。例如。viewBox="0 0 200 600"
或viewBox="0 0 100 300"
等等。
如果这不起作用,那么您需要提供页面的工作示例,以便我们可以看到您实际在做什么。
推荐阅读
- excel - VBA循环将工作表中的单元格复制到主表中
- reactjs - 不从函数调用 getlocalstorage
- node.js - 为什么在循环内执行 Promise 时对象数组变为空
- c++ - 十进制,包括负到 32 位二进制转换器
- apache - htaccess 文件夹覆盖到子文件夹
- git - 来自 git toplevel 文件夹的乳胶输入文件
- qweb - Odoo 10 报告:在页面末尾打印变量
- java - 使用 Java 8 过滤对象列表并将过滤后的结果映射回同一列表
- solid-principles - SOLID 设计原则:Liskov 替换原则和依赖倒置原则
- javascript - 使用 three.js GLTFLoader() 和 typescript - 与 zimjs 冲突