<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script> window.onload = function () { var chart = new CanvasJS.Chart("chartContainer", { animationEnabled: true, title: { text: "Try Dragging Any Column to Resize" }, axisX: { minimum: 5, maximum: 95 }, 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(); var xSnapDistance = chart.axisX[0].convertPixelToValue(chart.get("dataPointWidth")) / 2; var ySnapDistance = 3; var xValue, yValue; var mouseDown = false; var selected = null; var changeCursor = false; var timerId = null; function getPosition(e) { var parentOffset = $("#chartContainer > .canvasjs-chart-container").offset(); var relX = e.pageX - parentOffset.left; var relY = e.pageY - parentOffset.top; xValue = Math.round(chart.axisX[0].convertPixelToValue(relX)); yValue = Math.round(chart.axisY[0].convertPixelToValue(relY)); } function searchDataPoint() { var dps = chart.data[0].dataPoints; for (var i = 0; i < dps.length; i++) { if ((xValue >= dps[i].x - xSnapDistance && xValue <= dps[i].x + xSnapDistance) && (yValue >= dps[i].y - ySnapDistance && yValue <= dps[i].y + ySnapDistance)) { if (mouseDown) { selected = i; break; } else { changeCursor = true; break; } } else { selected = null; changeCursor = false; } } } jQuery("#chartContainer > .canvasjs-chart-container").on({ mousedown: function (e) { mouseDown = true; getPosition(e); searchDataPoint(); }, mousemove: function (e) { getPosition(e); if (mouseDown) { clearTimeout(timerId); timerId = setTimeout(function () { if (selected != null) { chart.data[0].dataPoints[selected].y = yValue; chart.render(); } }, 0); } else { searchDataPoint(); if (changeCursor) { chart.data[0].set("cursor", "n-resize"); } else { chart.data[0].set("cursor", "default"); } } }, mouseup: function (e) { if (selected != null) { chart.data[0].dataPoints[selected].y = yValue; chart.render(); mouseDown = false; } } }); } </script> </head> <body> <div id="chartContainer" style="height: 370px; max-width: 920px; margin: 0px auto;"></div> <script src="../../asset/js/canvasjs/jquery-1.11.1.min.js"></script> <script src="../../asset/js/canvasjs/canvasjs.min.js"></script> </body> </html>