|
|
@ -0,0 +1,88 @@ |
|
|
|
<!DOCTYPE HTML> |
|
|
|
<html> |
|
|
|
<head> |
|
|
|
<title>Timeline | navigation menu</title> |
|
|
|
|
|
|
|
<style type="text/css"> |
|
|
|
body, html, input { |
|
|
|
font-family: sans-serif; |
|
|
|
font-size: 12pt; |
|
|
|
} |
|
|
|
|
|
|
|
#visualization { |
|
|
|
position: relative; |
|
|
|
} |
|
|
|
|
|
|
|
.menu { |
|
|
|
position: absolute; |
|
|
|
top: 0; |
|
|
|
right: 0; |
|
|
|
margin: 10px; |
|
|
|
z-index: 9999; |
|
|
|
} |
|
|
|
</style> |
|
|
|
|
|
|
|
<script src="../../dist/vis.js"></script> |
|
|
|
<link href="../../dist/vis.css" rel="stylesheet" type="text/css" /> |
|
|
|
</head> |
|
|
|
<body> |
|
|
|
<div id="visualization"> |
|
|
|
<div class="menu"> |
|
|
|
<input type="button" id="zoomIn" value="Zoom in"/> |
|
|
|
<input type="button" id="zoomOut" value="Zoom out"/> |
|
|
|
<input type="button" id="moveLeft" value="Move left"/> |
|
|
|
<input type="button" id="moveRight" value="Move right"/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<script type="text/javascript"> |
|
|
|
// create a timeline with some data |
|
|
|
var container = document.getElementById('visualization'); |
|
|
|
var items = [ |
|
|
|
{id: 1, content: 'item 1', start: '2014-04-20'}, |
|
|
|
{id: 2, content: 'item 2', start: '2014-04-14'}, |
|
|
|
{id: 3, content: 'item 3', start: '2014-04-18'}, |
|
|
|
{id: 4, content: 'item 4', start: '2014-04-16', end: '2014-04-19'}, |
|
|
|
{id: 5, content: 'item 5', start: '2014-04-25'}, |
|
|
|
{id: 6, content: 'item 6', start: '2014-04-27', type: 'point'} |
|
|
|
]; |
|
|
|
var options = {}; |
|
|
|
var timeline = new vis.Timeline(container, items, options); |
|
|
|
|
|
|
|
/** |
|
|
|
* Move the timeline a given percentage to left or right |
|
|
|
* @param {Number} percentage For exampe 0.1 or -0.1 |
|
|
|
*/ |
|
|
|
function move (percentage) { |
|
|
|
var range = timeline.getWindow(); |
|
|
|
var interval = range.end - range.start; |
|
|
|
|
|
|
|
timeline.setWindow({ |
|
|
|
start: range.start.valueOf() - interval * percentage, |
|
|
|
end: range.end.valueOf() - interval * percentage |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Zoom the timeline a given percentage in or out |
|
|
|
* @param {Number} percentage For exampe 0.1 (zoom out) or -0.1 (zoom in) |
|
|
|
*/ |
|
|
|
function zoom (percentage) { |
|
|
|
var range = timeline.getWindow(); |
|
|
|
var interval = range.end - range.start; |
|
|
|
|
|
|
|
timeline.setWindow({ |
|
|
|
start: range.start.valueOf() - interval * percentage, |
|
|
|
end: range.end.valueOf() + interval * percentage |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
// attach events to the navigation buttons |
|
|
|
document.getElementById('zoomIn').onclick = function () { zoom(-0.2); }; |
|
|
|
document.getElementById('zoomOut').onclick = function () { zoom( 0.2); }; |
|
|
|
document.getElementById('moveLeft').onclick = function () { move( 0.2); }; |
|
|
|
document.getElementById('moveRight').onclick = function () { move(-0.2); }; |
|
|
|
|
|
|
|
</script> |
|
|
|
</body> |
|
|
|
</html> |