我有一个内部有很多元素的SVG元素。 SVG元素有一个视图框,因此您可以按一个缩放按钮,元素看起来更大或更小。效果很好。现在的问题是,当元素溢出父SVG元素时,不会出现ScrollBars。
示例:
<div width="100%" height="100%">
<svg height="100%" width="100%" style="overflow-x: auto; overflow-y: auto; "viewBox="0 0 793 1122">
<g>
...
<line y2="44.9792mm" y1="44.9792mm" x1="197.203mm" x2="12.7028mm"></line>
<line y2="44.9792mm" y1="44.9792mm" x1="197.203mm" x2="12.7028mm"></line>
<text x="43.4516mm" y="52.9167mm" style="font-size: 11pt;">S</text>
<rect x="0" width="210mm" y="0" height="297mm"></rect>
...
</g>
</svg>
</div>
//here I set the viewbox after clicking the zoomOut-Button
float width = svg.getViewBox().getBaseVal().getWidth();
float height = svg.getViewBox().getBaseVal().getHeight();
svg.getViewBox().getBaseVal().setHeight((float) (height / 0.9));
svg.getViewBox().getBaseVal().setWidth((float) (width / 0.9));
有人能帮助我吗? 我把溢出attribut放在svg和div标签中。不起作用。
答案 0 :(得分:36)
尝试使SVG元素大于div,让div使用scroll来处理溢出。
例如,请参阅此jsfiddle,其中使用了以下css:
div#container {
height: 400px;
width: 400px;
border:2px solid #000;
overflow: scroll;
}
svg#sky {
height: 100px;
width: 1100px;
border:1px dotted #ccc;
background-color: #ccc;
}
答案 1 :(得分:5)
SVG的一部分是它可以缩放以适应屏幕。但是,我想如果你想获得类似你所描述的内容,那么你需要将明确的width
和height
设置为svg
元素。像http://jsfiddle.net/qTFxJ/13/这样的地方,我设置了width
和height
(以像素为单位)以匹配您的viewBox
尺寸。