Appearance
Panning
This example shows how to navigate within the view by moving the camera. Use your mouse to drag the camera around the view.
ts
import Ogma from '@linkurious/ogma';
const ogma = new Ogma({
container: 'graph-container',
options: {
interactions: { zoom: { onDoubleClick: true } },
backgroundColor: '#dddddd'
}
});
ogma.events.on('nodesDragStart', eventData => {
console.log('start', eventData);
// console.log('Starting drag nodes ' +
// eventData.nodes.getId().join() +
// ' at (' + eventData.x + ', ' + eventData.y + ')');
});
ogma.events.on('nodesDragProgress', eventData => {
console.log('progress', eventData);
// console.log('Dragging node ' + eventData.node.getId() +
// ' to (' + eventData.x + ', ' + eventData.y + ')');
});
ogma.events.on('nodesDragEnd', eventData => {
console.log('end', eventData);
// console.log('Ending drag node ' + eventData.node.getId() +
// ' at (' + eventData.x + ', ' + eventData.y + ')');
});
// Generate a random graph and assign it to Ogma.
const graph = await ogma.generate.random({ nodes: 15, edges: 30 });
await ogma.setGraph(graph);
await ogma.view.locateGraph();
html
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<link type="text/css" rel="stylesheet" href="styles.css" />
</head>
<body>
<div id="graph-container"></div>
<script type="module" src="index.ts"></script>
</body>
</html>
css
body,
html {
width: 100%;
height: 100%;
text-align: center;
margin: 0;
}
#graph-container {
width: 50%;
height: 50%;
margin: auto;
overflow: hidden;
display: block;
position: relative;
top: 25%;
border: 1px solid #444444;
}