cytoscape.js中的布局刷新是否有些延迟?

时间:2019-07-10 06:56:34

标签: javascript layout refresh cytoscape.js

当我单击一个节点时,我想通过给选定的节点一个高的因子来刷新布局。

// tap/click
    cy.on('tap', 'node', function (evt) {
        var node = evt.target;
        var tmp = cy.layout(cyLayoutOptions["concentric"]);
        tmp.run();
        resetZoom();
        resetCenter();
    });


// grid
sort: function (a, b) {
            var aFactor = a.selected() ? 99 : 1;
            var bFactor = b.selected() ? 99 : 1;
            console.log("a、b factor: " + aFactor + ", " + bFactor);
            return aFactor * a.degree() - bFactor * b.degree();
        },
        position: function (node) {
            var isSelected = node.selected();
            if (isSelected) {
                return { row: 0, col: 0 };
            }
        }

// concentric
concentric: {
        name: "concentric",
        nodeDimensionsIncludeLabels: true,
        concentric: function (node) {
            var factor = node.selected() ? 99 : 1;
            return node.degree() * factor;
        },
        levelWidth: function (nodes) {
            return nodes.maxDegree();// / 4;
        }
    },

布局是否有些延迟?无论是网格还是同心,当我单击一个节点时都没有更改,然后再次单击同一节点并将其更改为我的预期状态,例如同心。

当我第一次单击节点时,应该只选择它,但布局没有变化:

screenshot: no change after 1st click

然后,我再次单击同一节点,它将更改为我的预期状态:

screenshot: layout refreshed after 2nd click

似乎有一个延迟。是否有一些选项可以使布局方法立即更新?但是方法layout.run();没有参数。

0 个答案:

没有答案