javascript - 使用溢出 :scoll,SVG 无法在 Div Wrapper 中滚动

标签 javascript css svg

我希望能够在包装器 div 中滚动 svg 的整个高度,但不幸的是它不可滚动。任何帮助表示赞赏。

SVG 中渲染的 TreeMap 的大小是动态的,因此我没有 SVG 的固定尺寸。

我正在寻找的解决方案是滚动条允许我在包装器中查看整个 svg,其高度和宽度可以使用视口(viewport)高度设置。

#vulcanWrapper {
  border:1px solid red;
  overflow: scroll;
  height:92vh;
  width: 100%;
}

#vulcanWrapper svg {
  height:88vh;
  width:90%;
  border:1px solid black;
}

您可以查看 source code在 jsfiddle 上:

https://jsfiddle.net/intelligence_ai/0quz2pLL/3/

截图:

enter image description here

最佳答案

我已经看了你的代码半个小时了,我不得不承认我不明白你是如何计算节点的位置的。交换 x 和 y 当然对您的情况没有帮助。

因此,这里只是经验证据:从 CSS 中删除 svg 的宽度和高度值,而是设置一个 viewBox 和一个 width 属性。对于您的数据集,这有效:

viewBox="0 -2540 820 5130" width="820"
  • 第一个值:0,我认为
  • 第二个值:最顶层节点的垂直平移
  • 第三个值:总需要宽度。也为宽度属性设置它。
  • 第四个值:节点数*节点高度+底部边距

我希望你能从这里弄清楚。

关于javascript - 使用溢出 :scoll,SVG 无法在 Div Wrapper 中滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46290832/

相关文章:

javascript - 将字符串(这是有效的对象结构,但不是有效的 json 结构)转换为对象

html - 边框比底部的图像稍大?

css - 在动画父宽度时将图像居中?

javascript - SVG:将鼠标移动到 <image> 元素会触发父 <g> 元素的 mouseout 事件 (d3.js)

css - 我可以使用 CSS 更改 svg 路径的填充颜色吗?

javascript - 如何防止移动设备上的图像缩放?

javascript - 从变量设置动态 javascript 函数名称

javascript - 如何测量巨大 svg 的渲染时间?

html - 什么是数据分析放置和数据分析链接?

javascript - 向 D3 力定向图中的链接添加标签