【问题标题】:How to force a redraw of the JointJS canvas?如何强制重绘 JointJS 画布?
【发布时间】:2017-02-28 09:25:13
【问题描述】:

如何强制一组链接在 JointJS 中呈现?

我们发现绘制节点之间的链接花费的时间太长。我们希望向我们的用户展示链接的进度,即使它会减慢总长度。我们在jointjs.com 使用Javascript 库JointJS,并尝试了多种Javascript 方法来强制重绘DOM,但似乎没有任何东西触发重绘。

以下是我们尝试触发重绘 DOM 的一部分的代码示例,更不用说 JointJS 画布了:

// Fails
// var logger = document.getElementById('log');
// logger.innerHTML = "Processing..."; //  + node_name;
// logger.offsetHeight;

// Fails
//$('#logger').redraw();

// Fails
// $("#logger").hide().html(node_name).fadeIn('fast');

// Fails
// document.getElementById('log').style.display = 'none';
// document.getElementById('log').style.display = 'block';

有什么想法可行吗?

【问题讨论】:

  • 你能解释一下你所说的链接是什么意思吗?你说的是节点之间的链接吗?
  • @VinayPrabhakaran 是的 - 我们想在节点之间绘制链接,并让它们一次显示在画布上。目前,画布一直等到我们的整个 JSON 文件被解析并且所有的绘图调用都被调用之后才突然一次绘制所有的链接。
  • 请粘贴您添加链接的代码,您是否在代码末尾添加了 graph.addCells 调用中的所有链接。请粘贴您的代码

标签: javascript jointjs


【解决方案1】:

你可以使用主干的view.render()

例如,做一个任意链接:

let link = graph.getLinks()[0];
let view = paper.findViewByModel(link.id).render();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多