我想知道对于某些可能复杂的 SVG,模拟双缓冲的更好方法是什么。我经常重新加载一个修改过的SVG,我想摆脱负载延迟。我想在onLoad之后使用两个重叠的DIV并切换可见性。有一些更好的选择吗?
修改
现在我在DIV中实现了两个重叠的SVG实例,样式显示为toggling(block / none)。它几乎适用于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>