| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- $(function() {
- var tt = document.createElement('div'),
- leftOffset = -(~~$('html').css('padding-left').replace('px', '') + ~~$('body').css('margin-left').replace('px', '')),
- topOffset = 0;
- tt.className = 'tooltip top fade in';
- document.body.appendChild(tt);
- var data = [{
- "xScale": "ordinal",
- "comp": [],
- "main": [{
- "className": ".main.l1",
- "data": [{
- "y": 15,
- "x": "2012-11-19T00:00:00"
- }, {
- "y": 11,
- "x": "2012-11-20T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-21T00:00:00"
- }, {
- "y": 10,
- "x": "2012-11-22T00:00:00"
- }, {
- "y": 1,
- "x": "2012-11-23T00:00:00"
- }, {
- "y": 6,
- "x": "2012-11-24T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-25T00:00:00"
- }]
- }, {
- "className": ".main.l2",
- "data": [{
- "y": 29,
- "x": "2012-11-19T00:00:00"
- }, {
- "y": 33,
- "x": "2012-11-20T00:00:00"
- }, {
- "y": 13,
- "x": "2012-11-21T00:00:00"
- }, {
- "y": 16,
- "x": "2012-11-22T00:00:00"
- }, {
- "y": 7,
- "x": "2012-11-23T00:00:00"
- }, {
- "y": 18,
- "x": "2012-11-24T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-25T00:00:00"
- }]
- }],
- "type": "line-dotted",
- "yScale": "linear"
- }, {
- "xScale": "ordinal",
- "comp": [],
- "main": [{
- "className": ".main.l1",
- "data": [{
- "y": 12,
- "x": "2012-11-19T00:00:00"
- }, {
- "y": 18,
- "x": "2012-11-20T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-21T00:00:00"
- }, {
- "y": 7,
- "x": "2012-11-22T00:00:00"
- }, {
- "y": 6,
- "x": "2012-11-23T00:00:00"
- }, {
- "y": 12,
- "x": "2012-11-24T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-25T00:00:00"
- }]
- }, {
- "className": ".main.l2",
- "data": [{
- "y": 29,
- "x": "2012-11-19T00:00:00"
- }, {
- "y": 33,
- "x": "2012-11-20T00:00:00"
- }, {
- "y": 13,
- "x": "2012-11-21T00:00:00"
- }, {
- "y": 16,
- "x": "2012-11-22T00:00:00"
- }, {
- "y": 7,
- "x": "2012-11-23T00:00:00"
- }, {
- "y": 18,
- "x": "2012-11-24T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-25T00:00:00"
- }]
- }],
- "type": "cumulative",
- "yScale": "linear"
- }, {
- "xScale": "ordinal",
- "comp": [],
- "main": [{
- "className": ".main.l1",
- "data": [{
- "y": 12,
- "x": "2012-11-19T00:00:00"
- }, {
- "y": 18,
- "x": "2012-11-20T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-21T00:00:00"
- }, {
- "y": 7,
- "x": "2012-11-22T00:00:00"
- }, {
- "y": 6,
- "x": "2012-11-23T00:00:00"
- }, {
- "y": 12,
- "x": "2012-11-24T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-25T00:00:00"
- }]
- }, {
- "className": ".main.l2",
- "data": [{
- "y": 29,
- "x": "2012-11-19T00:00:00"
- }, {
- "y": 33,
- "x": "2012-11-20T00:00:00"
- }, {
- "y": 13,
- "x": "2012-11-21T00:00:00"
- }, {
- "y": 16,
- "x": "2012-11-22T00:00:00"
- }, {
- "y": 7,
- "x": "2012-11-23T00:00:00"
- }, {
- "y": 18,
- "x": "2012-11-24T00:00:00"
- }, {
- "y": 8,
- "x": "2012-11-25T00:00:00"
- }]
- }],
- "type": "bar",
- "yScale": "linear"
- }];
- var order = [0, 1, 0, 2],
- i = 0,
- xFormat = d3.time.format('%A'),
- chart = new xChart('line-dotted', data[order[i]], '#example-vis', {
- axisPaddingTop: 5,
- dataFormatX: function(x) {
- return new Date(x);
- },
- tickFormatX: function(x) {
- return xFormat(x);
- },
- mouseover: function(d, i) {
- var pos = $(this).offset();
- $(tt).html('<div class="arrow"></div><div class="tooltip-inner">' + d3.time.format('%A')(d.x) + ': ' + d.y + '</div>')
- .css({
- top: topOffset + pos.top,
- left: pos.left + leftOffset
- })
- .show();
- },
- mouseout: function(x) {
- $(tt).hide();
- },
- timing: 1250
- }),
- rotateTimer,
- toggles = d3.selectAll('#upd-chart a'),
- t = 3500;
- function updateChart(i) {
- var d = data[i];
- chart.setData(d);
- toggles.classed('active', function() {
- return (d3.select(this).attr('data-type') === d.type);
- });
- return d;
- }
- toggles.on('click', function(d, i) {
- clearTimeout(rotateTimer);
- updateChart(i);
- });
- function rotateChart() {
- i += 1;
- i = (i >= order.length) ? 0 : i;
- var d = updateChart(order[i]);
- rotateTimer = setTimeout(rotateChart, t);
- }
- rotateTimer = setTimeout(rotateChart, t);
- }());
|