Animate Chart on Scroll | CanvasJS JavaScript Charts

Animate Chart on Scroll | CanvasJS JavaScript Charts

by canvasjs

HTML

<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>

<div class="blankDiv">
  Scroll Down to See the chart
</div>
<div id="chartContainer" style="height: 300px; width: 100%;"></div>

CSS

.blankDiv {
  height: 1000px;
  width: 100%;
}

JavaScript

window.onload = function () {
	var chart = new CanvasJS.Chart("chartContainer", {
		title:{
			text: "Animate Chart on Scroll"              
		},
    animationEnabled: true,
		data: [              
		{
			// Change type to "doughnut", "line", "splineArea", etc.
			type: "column",
			dataPoints: [
				{ label: "apple",  y: 10  },
				{ label: "orange", y: 15  },
				{ label: "banana", y: 25  },
				{ label: "mango",  y: 30  },
				{ label: "grape",  y: 28  }
			]
		}
		]
	});
  var element = document.getElementById("chartContainer");
  var offsetForChartToDisplay = element.offsetTop + 150;
  
  function scrollFunction() {
  	if( (document.documentElement.scrollTop+window.innerHeight) > offsetForChartToDisplay) {
			window.removeEventListener("scroll", scrollFunction);
      chart.render();
    }
  }
  
  window.addEventListener("scroll", scrollFunction)
}