HTMLcopy
1
<div id="container"></div>
CSScopy
8
1
html,
2
body,
3
#container {
4
width: 100%;
5
height: 100%;
6
margin: 0;
7
padding: 0;
8
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
// The data used in this sample can be obtained from the CDN
3
// https://cdn.anychart.com/samples/gantt-general-features/styling-timeline/data.json
4
anychart.data.loadJsonFile(
5
'https://cdn.anychart.com/samples/gantt-general-features/styling-labels/data.json',
6
function (data) {
7
// create data tree on raw data
8
var treeData = anychart.data.tree(data, 'as-table');
9
10
// create ganttProject chart
11
var chart = anychart.ganttProject();
12
13
// set data for the chart
14
chart.data(treeData);
15
16
// get chart data grid
17
var dataGrid = chart.dataGrid();
18
19
// set data grid column's width and font size for it's labels
20
dataGrid.column(1).width(280);
21
22
// get data grid buttons
23
var button = dataGrid.buttons();
24
25
// disable button's background for every state
26
button.background(false);
27
button.hovered().background(false);
28
button.selected().background(false);
29
30
// set data grod button's content using function
31
var fn = function (path) {
32
// get center of button's path
33
var centerX = this.width / 2;
34
var centerY = this.height / 2;
35
36
// draw triangle in path
37
if (this.state === 'selected') {
38
anychart.graphics.vector.primitives
39
.triangleDown(path.clear(), centerX, centerY, 8)
40
.fill('#465A63');
41
} else {
42
anychart.graphics.vector.primitives
43
.triangleRight(path.clear(), centerX, centerY, 8)
44
.fill('#2278CF');
45
}
46
};
47
48
// set function as content of button
49
button.content(fn);
50
button.selected().content(fn);
51
52
// set container id for the chart
53
chart.container('container');
54
55
// initiate chart drawing
56
chart.draw();
57
58
// collapse all tasks
59
chart.collapseAll();
60
61
// expand first task
62
chart.expandTask('pre-planning');
63
64
// zoom chart all dates range
65
chart.fitAll();
66
}
67
);
68
});