1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
function fadeOutItem(item, opacityPath, opacityRatio) { var el = item.getGraphicEl(); var opacity = getItemOpacity(item, opacityPath);
if (opacityRatio != null) { opacity == null && (opacity = 1); opacity *= opacityRatio; }
el.downplay && el.downplay(); el.traverse(function (child) { if (!child.isGroup) { var opct = child.lineLabelOriginalOpacity; if (opct == null || opacityRatio != null) { opct = opacity; } child.setStyle('opacity', opct); } }); }
function fadeInItem(item, opacityPath) { var opacity = getItemOpacity(item, opacityPath); var el = item.getGraphicEl(); el.traverse(function (child) { !child.isGroup && child.setStyle('opacity', opacity); }); el.highlight && el.highlight(); }
focusNodeAdjacency: function (seriesModel, ecModel, api, payload) { var data = seriesModel.getData(); var graph = data.graph; var dataIndex = payload.dataIndex; var edgeDataIndex = payload.edgeDataIndex;
var node = graph.getNodeByIndex(dataIndex); var edge = graph.getEdgeByIndex(edgeDataIndex);
if (!node && !edge) { return; }
graph.eachNode(function (node) { fadeOutItem(node, nodeOpacityPath, 0.1); }); graph.eachEdge(function (edge) { fadeOutItem(edge, lineOpacityPath, 0.1); });
if (node) { fadeInItem(node, hoverNodeOpacityPath); var focusNodeAdj = itemModel.get('focusNodeAdjacency'); if (focusNodeAdj === 'outEdges') { zrUtil.each(node.outEdges, function (edge) { if (edge.dataIndex < 0) { return; } fadeInItem(edge, hoverLineOpacityPath); fadeInItem(edge.node2, hoverNodeOpacityPath); }); } else if (focusNodeAdj === 'inEdges') { zrUtil.each(node.inEdges, function (edge) { if (edge.dataIndex < 0) { return; } fadeInItem(edge, hoverLineOpacityPath); fadeInItem(edge.node1, hoverNodeOpacityPath); }); } else if (focusNodeAdj === 'allEdges') { zrUtil.each(node.edges, function (edge) { if (edge.dataIndex < 0) { return; } fadeInItem(edge, hoverLineOpacityPath); (edge.node1 !== node) && fadeInItem(edge.node1, hoverNodeOpacityPath); (edge.node2 !== node) && fadeInItem(edge.node2, hoverNodeOpacityPath); }); } } if (edge) { fadeInItem(edge, hoverLineOpacityPath); fadeInItem(edge.node1, hoverNodeOpacityPath); fadeInItem(edge.node2, hoverNodeOpacityPath); } }
|