%PDF- %PDF-
Direktori : /home/riacommer/public_html/admin/vendor/flot.animator/ |
Current File : /home/riacommer/public_html/admin/vendor/flot.animator/jquery.flot.animator.js |
/* jQuery Flot Animator version 1.0. Flot Animator is a free jQuery Plugin that will add fluid animations to Flot charts. Copyright (c) 2012-2013 Chtiwi Malek http://www.codicode.com/art/jquery_flot_animator.aspx Licensed under Creative Commons Attribution 3.0 Unported License. */ $.extend({ plotAnimator: function (chart, data,g){ var serie = 0; for (var i = 0; i < data.length; i++) { if (data[i].animator) { serie = i; } } function pInit(arr){ var x = []; x.push([arr[0][0], Math.max.apply(Math, arr.map(function(i) { return i[1];}))]); x.push([arr[0][0], null]); x.push([arr[0][0], Math.min.apply(Math, arr.map(function(i) { return i[1];}))]); for(var i = 0; i < arr.length; i++) { x.push([arr[i][0], null]); } data[serie].data = x; return $.plot(chart, data, g); } var d0 = data[serie]; var oData = d0.data; var plot = pInit(oData); var isLines = (data[serie].lines)?true:false; var steps = (data[serie].animator && data[serie].animator.steps) || 135; var duration = (data[serie].animator && data[serie].animator.duration) || 1000; var start = (data[serie].animator && data[serie].animator.start) || 0; var dir = (data[serie].animator && data[serie].animator.direction) || "right"; function stepData() { var Si = oData[0][0]; var Fi = oData[oData.length-1][0]; var Pas = (Fi-Si)/steps; var d2 = []; d2.push(oData[0]); var nPointPos = 1; lPoint = oData[0]; nPoint = oData[nPointPos]; for (var i = Si+Pas; i < Fi+Pas; i += Pas) { if (i>Fi) {i=Fi;} $("#m2").html(i); while (i > nPoint[0]) { lPoint = nPoint; nPoint = oData[nPointPos++]; } if (i == nPoint[0]) { d2.push([i,nPoint[1]]); lPoint = nPoint; nPoint = oData[nPointPos++]; } else { var a = ((nPoint[1]-lPoint[1]) / ((nPoint[0]-lPoint[0]))); curV = (a * i) + (lPoint[1] - (a * lPoint[0])); d2.push([i,curV]); } } return d2; } var step=0; var sData = stepData(); function plotData() { var d3=[]; step++; switch(dir) { case 'right': d3 = sData.slice(0, step); break; case 'left': d3 = sData.slice(-1*step); break case 'center': d3 = sData.slice((sData.length/2)-(step/2),(sData.length/2)+(step/2)); break; } if (!isLines) { inV = d3[0][0]; laV = d3[d3.length-1][0]; d3=[]; for (var i = 0; i < oData.length; i++) { if (oData[i][0]>=inV && oData[i][0]<=laV) { d3.push(oData[i]); } } } data[serie].data = (step<steps)?d3:oData; plot.setData(data); plot.draw(); if (step<steps) { setTimeout(plotData, duration/steps); } else { chart.trigger( "animatorComplete" ); } } setTimeout(plotData,start); return plot; } });