HTMLcopy
1
<div id="container"></div>
CSScopy
6
1
html, body, #container {
2
width: 100%;
3
height: 100%;
4
margin: 0;
5
padding: 0;
6
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
// set stage
3
var stage = anychart.graphics.create("container");
4
5
// create data tree on our data
6
var treeDataResource = anychart.data.tree(getResourceData(), "as-table");
7
8
// create resource gantt chart
9
var resource = anychart.ganttResource();
10
11
// set splitter position
12
resource.splitterPosition("22%");
13
14
// chart size and position
15
resource.bounds("0%", "50%", "100%", "50%");
16
17
// set data for the chart
18
resource.data(treeDataResource);
19
20
var treeDataGantt = anychart.data.tree(getGanttData(), "as-tree");
21
var gantt = anychart.ganttProject();
22
gantt.splitterPosition("22%");
23
gantt.bounds(0, 0, "100%", "50%")
24
25
var ganttScale = gantt.xScale();
26
27
// set scale maximum and minimum
28
var min = 1169640800000;
29
var max = 1174655390000;
30
var dif = max - min;
31
32
ganttScale.minimum(min);
33
ganttScale.maximum(max);
34
35
gantt.zoomTo(min, max);
36
37
gantt.data(treeDataGantt);
38
gantt.container(stage);
39
gantt.draw();
40
41
// enable the scroller
42
var scroller = anychart.standalones.scroller();
43
44
var resourceScale = resource.xScale();
45
46
resourceScale.minimum(min);
47
resourceScale.maximum(max);
48
49
resource.zoomTo(min, max);
50
51
// set event listener on resource scroller
52
resource.getTimeline().horizontalScrollBar().listen('scrollChange', function(e) {
53
var startDate = Math.round(e.startRatio*dif)+min;
54
console.log(dif)
55
var endDate = Math.round(e.endRatio*dif)+min;
56
gantt.zoomTo(startDate, endDate);
57
});
58
59
// disable gantt scroller
60
gantt.getTimeline().horizontalScrollBar().enabled(false);
61
62
resource.container(stage);
63
resource.draw();
64
});
65
66
function getGanttData(){
67
return [
68
{
69
"name": "Activities",
70
"actualStart": Date.UTC(2007, 0, 25),
71
"actualEnd": Date.UTC(2007, 2, 14),
72
"children": [
73
{
74
"name": "Draft plan",
75
"actualStart": Date.UTC(2007, 0, 25),
76
"actualEnd": Date.UTC(2007, 1, 3)
77
},
78
{
79
"name": "Board meeting",
80
"actualStart": Date.UTC(2007, 1, 4),
81
"actualEnd": Date.UTC(2007, 1, 4)
82
},
83
{
84
"name": "Research option",
85
"actualStart": Date.UTC(2007, 1, 4),
86
"actualEnd": Date.UTC(2007, 1, 24)
87
},
88
{
89
"name": "Final plan",
90
"actualStart": Date.UTC(2007, 1, 24),
91
"actualEnd": Date.UTC(2007, 2, 14)
92
}
93
]
94
}];
95
}
96
97
function getResourceData() {
98
return [
99
{
100
"id": "1",
101
"name": "Alex Exler",
102
"periods": [
103
{"id": "1_1", "start": 1171468800000, "end": 1171987200000}]
104
},
105
{
106
"id": "2",
107
"name": "Philip Kineyko",
108
"periods": [
109
{"id": "2_1", "start": 1173024000000, "end": 1173715200000},
110
{"id": "2_2", "start": 1173888000000, "end": 1174406400000}]
111
},
112
{
113
"id": "3",
114
"name": "Luke Liakos",
115
"periods": [
116
{"id": "3_1", "start": 1169740800000, "end": 1170172800000},
117
{"id": "3_2", "start": 1171987200000, "end": 1172505600000}]
118
},
119
{
120
"id": "4",
121
"name": "Judy Penfold",
122
"periods": [
123
{"id": "4_1", "start": 1171814400000, "end": 1172419200000},
124
{"id": "4_2", "start": 1173628800000, "end": 1174320000000}]
125
},
126
{
127
"id": "5",
128
"name": "Patricia Darmon",
129
"periods": [
130
{"id": "5_1", "start": 1171296000000, "end": 1171382400000},
131
{"id": "5_2", "start": 1174233600000, "end": 1174579200000}]
132
}
133
];
134
}