JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script src="https://canvasjs.com/assets/script/jquery-1.11.1.min.js"></script>
<div id="chartContainer" style="height: 360px; width: 100%;"></div>

JavaScript

var chart = new CanvasJS.Chart("chartContainer", {
  title: {
    text: "Zooming Chart with Mouse Scroll"
  },
  data: [
    {
      type: "column",
      dataPoints: [
        { x: 10, y: 71 },
        { x: 20, y: 55 },
        { x: 30, y: 50 },
        { x: 40, y: 65 },
        { x: 50, y: 95 },
        { x: 60, y: 68 },
        { x: 70, y: 28 },
        { x: 80, y: 34 },
        { x: 90, y: 14 },
      ]
    }					
  ]
});

chart.render();

document.getElementsByClassName("canvasjs-chart-canvas")[1].addEventListener("wheel", function(e){
  e.preventDefault();

  if(e.clientX < chart.plotArea.x1 || e.clientX > chart.plotArea.x2 || e.clientY < chart.plotArea.y1 || e.clientY > chart.plotArea.y2)
    return;

  var xValue = Math.round(chart.axisX[0].convertPixelToValue(e.clientX));
  var yValue = Math.round(chart.axisY[0].convertPixelToValue(e.clientY));

  var axisXViewportMin = chart.axisX[0].get("viewportMinimum"),
      axisXViewportMax = chart.axisX[0].get("viewportMaximum"),

      axisYViewportMin = chart.axisY[0].get("viewportMinimum"),
      axisYViewportMax = chart.axisY[0].get("viewportMaximum"),
      
      axisXMin = chart.axisX[0].get("minimum"),
      axisXMax = chart.axisX[0].get("maximum"),
      
      axisYMin = chart.axisY[0].get("minimum"),
      axisYMax = chart.axisY[0].get("maximum"),

      axisXInterval = chart.axisX[0].interval,
      axisYInterval = chart.axisY[0].interval;

  var newAxisXViewportMin, newAxisXViewportMax,newAxisYViewportMin, newAxisYViewportMax;

  if (e.deltaY < 0) {
    newAxisXViewportMin = axisXViewportMin + (xValue - axisXViewportMin) / axisXInterval;
    newAxisXViewportMax = axisXViewportMax - (axisXViewportMax - xValue) / axisXInterval;

    newAxisYViewportMin = axisYViewportMin + (yValue - axisYViewportMin) / axisYInterval;
    newAxisYViewportMax = axisYViewportMax - (axisYViewportMax - yValue) / axisYInterval;
  }

  else if (e.deltaY > 0) {
    newAxisXViewportMin = (axisXViewportMin - (xValue -...