细胞景观:加载页面时不显示图形

Cytoscape : Graph is not displayed when page is loaded

本文关键字:显示 显示图 图形 景观 加载 细胞      更新时间:2023-09-26

我已经将细胞景观图合并到初始状态为 {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;"**>...

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

不幸的是,考虑到 DOM 的工作方式,在这种情况下您不能(单独)使用 display: none

display: none尺寸检测混乱,因此您需要

(1) 使用其他 CSS 属性,例如visibility: hidden或页外绝对定位,或

(2)在显示图形时显式调用cy.resize()