Cytoscape:加载页面时不显示图表

时间:2015-01-28 10:49:19

标签: javascript jquery css cytoscape.js

我已将一个cytoscape图表合并到一个初始状态为{display:none}的div中。

当显示div ($('div#id').show())时,除非用户调整浏览器窗口大小,否则不会显示图表。

我用js控制台查看了css,并意识到画布的初始css是这样的:width: 0px; height: 0px

只有在调整浏览器窗口大小时,画布才会继承#cy的宽度和高度:

初始CSS状态:

<div id="cy">
    <div style="position: absolute; z-index: 0; overflow: hidden; width: 0px; height: 0px;">**<canvas data-id="layer0-selectbox" width="0" height="0" style="position: absolute; z-index: 5; width: 0px; height: 0px;"></canvas>...

调整浏览器窗口大小时的CSS状态:

 <div id="cy"><div style="position: absolute; z-index: 0; overflow: hidden; width: 560px; height: 420px;"><canvas data-id="layer0-selectbox" width="560" height="420" style="position: absolute; z-index: 5; **width: 560px; height: 420px;"**>...

知道为什么会这样吗?你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

遗憾的是,鉴于DOM如何运作,在这种情况下你不能(单独)使用display: none

display: none混淆维度检测,因此您需要

(1)使用另一个CSS属性,如visibility: hidden或offpage绝对定位,或

(2)在显示图表时明确调用cy.resize()