|
|
- <!DOCTYPE HTML>
- <html>
- <head>
- <script src="../dist/vis.js"></script>
- <link href="../dist/vis.css" rel="stylesheet" type="text/css" />
- <style type="text/css">
- .graph {
- width: 100%;
- height: 500px;
- } </style>
- </head>
- <body>
-
- Visjs does not recognize fixing of nodes after drag & drop of a node; nodes jump back to original position.
-
- <pre></pre>
-
- <div class="graph" id="visualization1"></div>
- <div id="config"></div>
-
- <script type="text/javascript">
-
- var graph = {
- "edges": [
- {
- "id": "2ef44388-2d14-4db0-a2c7-9bd27235a17f",
- "from": "8044e455-d507-432e-bbc7-0d0308d29516",
- "to": "80f69421-1bc0-4ea2-8eed-b9df6caac6a6",
- "type": "tmap:unknown",
- "title": "Automatically assigned to an edge that does not have a type assigned",
- "color": "#f43bb1"
- },
- {
- "id": "181f6f8f-f170-4e92-8dcb-01504d864102",
- "from": "8044e455-d507-432e-bbc7-0d0308d29516",
- "to": "67942477-eb7b-43c0-a9f9-7cc0d46664ca",
- "type": "tmap:unknown",
- "title": "Automatically assigned to an edge that does not have a type assigned",
- "color": "#f43bb1"
- },
- {
- "id": "aef8b80b-d072-4c6b-bb73-c892f1cb6feb",
- "from": "80f69421-1bc0-4ea2-8eed-b9df6caac6a6",
- "to": "1b678c21-fc88-46c8-9a96-b3fbe22ecef0",
- "type": "tmap:unknown",
- "title": "Automatically assigned to an edge that does not have a type assigned",
- "color": "#f43bb1"
- },
- {
- "id": "919f7789-500b-45d7-a129-4f29141155b9",
- "from": "67942477-eb7b-43c0-a9f9-7cc0d46664ca",
- "to": "ecfbe4b8-fa35-40ec-94e6-ed859a4c8f0f",
- "type": "tmap:unknown",
- "title": "Automatically assigned to an edge that does not have a type assigned",
- "color": "#f43bb1"
- },
- {
- "id": "992cf67b-4f05-4ec7-9f90-9723f829a051",
- "from": "ed61cb00-8e20-4c5f-a3ee-fe7417b6b08b",
- "to": "eeea9c37-3335-41b6-a9e3-47b44438d0d5",
- "type": "tmap:unknown",
- "title": "Automatically assigned to an edge that does not have a type assigned",
- "color": "#f43bb1"
- },
- {
- "id": "e70fd8ed-231e-4608-869a-846c1b3264b0",
- "from": "eeea9c37-3335-41b6-a9e3-47b44438d0d5",
- "to": "8044e455-d507-432e-bbc7-0d0308d29516",
- "type": "tmap:unknown",
- "title": "Automatically assigned to an edge that does not have a type assigned",
- "color": "#f43bb1"
- }
- ],
- "nodes": [
- {
- "id": "8044e455-d507-432e-bbc7-0d0308d29516",
- "label": "Temple of Ihola",
- "x": 409,
- "y": 170,
- "fixed": {
- "x": true,
- "y": true
- },
- "color": {},
- "shape": "icon",
- "icon": {
- "shape": "icon",
- "face": "FontAwesome",
- "code": ""
- },
- "font": {
- "color": "black"
- }
- },
- {
- "id": "ecfbe4b8-fa35-40ec-94e6-ed859a4c8f0f",
- "label": "Temple of Sar",
- "x": 763,
- "y": 320,
- "fixed": {
- "x": true,
- "y": true
- },
- "color": {},
- "shape": "icon",
- "icon": {
- "shape": "icon",
- "face": "FontAwesome",
- "code": ""
- },
- "font": {
- "color": "black"
- }
- },
- {
- "id": "80f69421-1bc0-4ea2-8eed-b9df6caac6a6",
- "label": "Diamond mine",
- "x": 331,
- "y": 458,
- "fixed": {
- "x": true,
- "y": true
- },
- "color": {},
- "shape": "icon",
- "icon": {
- "shape": "icon",
- "face": "FontAwesome",
- "code": ""
- },
- "font": {
- "color": "black"
- }
- },
- {
- "id": "67942477-eb7b-43c0-a9f9-7cc0d46664ca",
- "label": "Castle of the Winds",
- "x": 664,
- "y": 132,
- "fixed": {
- "x": true,
- "y": true
- },
- "color": {},
- "shape": "icon",
- "icon": {
- "shape": "icon",
- "face": "FontAwesome",
- "code": ""
- },
- "font": {
- "color": "black"
- }
- },
- {
- "id": "ed61cb00-8e20-4c5f-a3ee-fe7417b6b08b",
- "label": "Start",
- "x": 94,
- "y": 314,
- "fixed": {
- "x": true,
- "y": true
- },
- "color": {},
- "font": {}
- },
- {
- "id": "eeea9c37-3335-41b6-a9e3-47b44438d0d5",
- "label": "Black forest",
- "x": 266,
- "y": 107,
- "fixed": {
- "x": true,
- "y": true
- },
- "color": {},
- "shape": "icon",
- "icon": {
- "shape": "icon",
- "face": "FontAwesome",
- "code": ""
- },
- "font": {
- "color": "black"
- }
- },
- {
- "id": "1b678c21-fc88-46c8-9a96-b3fbe22ecef0",
- "label": "Dragonland",
- "x": 527,
- "y": 444,
- "fixed": {
- "x": true,
- "y": true
- },
- "color": {},
- "shape": "icon",
- "icon": {
- "shape": "icon",
- "face": "FontAwesome",
- "code": ""
- },
- "font": {
- "color": "black"
- }
- }
- ]
- };
-
- var data = {
- nodes: new vis.DataSet(graph.nodes),
- edges: new vis.DataSet(graph.edges)
- };
-
- var options = {
- autoResize: true,
- height: '100%',
- width: '100%',
- physics: {
- barnesHut: {
- centralGravity: 0
- }
- }
- }
- ;
-
- var container = document.getElementById("visualization1");
-
- var network = new vis.Network(container, data, options);
-
- var hasNetworkStabilized = false;
-
- network.on("stabilized", function(properties) {
-
- if(!hasNetworkStabilized) {
- hasNetworkStabilized = true;
- network.fit();
- }
-
- });
-
- network.on("dragStart", function(properties) {
-
- if(!properties.nodes.length) return;
- setNodesMoveable(properties.nodes, true);
-
- });
-
- network.on("dragEnd", function(properties) {
-
- if(!properties.nodes.length) return;
- setNodesMoveable(properties.nodes, false);
-
- });
-
- setNodesMoveable = function(nodeIds, isMoveable) {
-
- // it only works if network.storePositions() is called before
- // setting moved nodes to fixed state. In visjs v4.9 this was
- // not required.
- // network.storePositions();
-
- var updates = [];
- var isFixed = !isMoveable;
- for(var i = nodeIds.length; i--;) {
-
- updates.push({
- id: nodeIds[i],
- fixed: { x: isFixed, y: isFixed }
- });
-
- }
-
- data.nodes.update(updates);
-
- };
-
- </script>
- </body>
- </html>
|