我想知道为一些可能很复杂的SVG模拟双缓冲的更好方法是什么。我经常重新加载修改后的 SVG,我想摆脱加载延迟。我正在考虑使用两个重叠的 DIV 并在 onLoad 之后切换可见性。有更好的选择吗?
编辑
现在我已经在 DIV 中实现了两个 SVG 实例重叠,样式显示切换(块/无)。它几乎在 FF 中工作(漂亮、平滑的变形,只是初始显示导致面积减少),但 Chrome 拒绝为我提供同步形状位置所需的 ScreenCTM 变换。我猜这些问题(FF 中的部分区域渲染,Chrome 中没有渲染)是相关的。现在我正在尝试使用可见性:隐藏。
编辑
切换可见性给出可接受的结果。感谢大家到目前为止的帮助。
编辑
我发现了一个问题,这让我再次在这里寻求帮助:我正在将 Boostrap 用于非 SVG 相关的 UI,并且工具栏的行为非常奇怪:当我在 2^ DIV(最初隐藏)上切换可见性时,没有事件到达工具栏。再次切换到 1^,事件正常。
我发现使用 position:absolute 或 position:fixed 是一样的(当然,对于事件问题),而 top:0 是“罪魁祸首”。使用任何大于 0 的值让事件流动,但 DIV 不可见。所以最初的问题是有道理的:有比切换可见性更好的方法吗?或关于html结构的提示?目前我的 HTML 看起来像
<div class="row-fluid" style="height:800px;background-color:cyan">
<div id="flowchart" style="visibility:visible;width:100%;height:100%"></div>
<div id="flowchart_x" style="visibility:hidden;width:100%;height:100%;position:absolute;top:0"></div>
</div>