Responsive Data-driven Timeline Plugin For jQuery - simpleTimeline
| File Size: | 11.9 KB |
|---|---|
| Views Total: | 12741 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
simpleTimeline is a simple yet configurable jQuery plugin used to render a responsive, dynamic, horizontal timeline from an array of data elements (horizontal bar groups).
Basic usage:
1. Load the necessary jQuery library and the jQuery resize plugin in your html document.
<script src="//code.jquery.com/jquery.min.js"></script> <script src="resize.js"></script>
2. Load the jQuery simpleTimeline plugin's files in the document.
<link rel="stylesheet" href="simpleTimeline.css"> <script src="simpleTimeline.js"></script>
3. Create a DIV element that will be served as the container for your timeline.
<div id="timeline"></div>
4. Define an array of data elements to be presented in the timeline.
/* [ // array of layers (horizontal bar groups)
[ // array of data elements
{ // data element (bar)
id: string, // unique identifier
start: number, // start < end
end: number, // end > start
label: string, // optional (if empty, id is displayed)
css: object, // optional, passed to jQuery css() method
className: string // optional CSS class name(s)
},
... // optional: more data elements
],
... // optional: more layers
];
*/
var data = [
[{ id: 'Dingo', start: -50000, end: -32000, className: 'styleA' },
{ id: 'Ringo', start: -3000, end: 0, className: 'styleA' }],
[{ id: 'Looong', start: -42000, end: -1492, className: 'styleB' },
{ id: 'Hoko', start: -980, end: -332, className: 'styleB' }],
[{ id: 'Wunz', start: -4700, end: -2000, className: 'styleC' },
{ id: 'Inzi', start: -2000, end: -1000, className: 'styleC' },
{ id: 'Misi', start: -2000, end: 1500, className: 'styleC' }]
];
5. Define an ordered array of phases (left to right, oldest to newest).
var options = {
phases: [
{ start: -50000, end: -30000, indicatorsEvery: 20000, share: .2 },
{ start: -30000, end: -5000, indicatorsEvery: 25000, share: .07, className: 'timeline-unused-phase' },
{ start: -5000, end: 2000, indicatorsEvery: 1000, share: .73 }
]
};
6. Render the timeline inside the DIV element you created.
$('#timeline').simpleTimeline(options, data)
7. All default options.
var options = {
// ordered array of phases (left to right, oldest to newest)
phases: [
{ // phase object
start: number, // start point
end: number, // end point
indicatorsEvery: number, // interval of indicator lines
share: number, // ]0;1] must sum up to 1 over all phases
className: string // optional: CSS class name
},
... // optionally more phases
],
// margin of the timeline box within the container
boxMargin: 5,
// height in pixels, at least 2 * borderWidth + fontSize
barHeight: 16,
// font size in pixels
fontSize: 12,
// border width in pixels
borderWidth: 2,
// space between bars in pixel
verticalBarSpacing: 3,
// min width of timeline box,
minWidth: 500,
// height of indicator labels in pixels
headerHeight: 20,
// formatting of indicator labels
formatHeader: function(v) { return v; },
// optional, if false, then not possible
toggle: {
collapseTooltip: 'Collapse Timeline', // tooltip text for collapse symbol
expandTooltip: 'Expand Timeline' // tooltip text for expand symbol
}
};
Change log:
2016-12-17
- bugfix
2016-12-09
- allows binding popup html to individual bars
2016-11-15
- JS & CSS update
2016-11-09
- fixes.
This awesome jQuery plugin is developed by eScienceCenter. For more Advanced Usages, please check the demo page or visit the official website.











