Display Crosshair at given X & Y value - CanvasJS JavaScript Charts
Display Crosshair at given X & Y value - CanvasJS JavaScript Charts
by canvasjs
HTML
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<div id="chartContainer" style="height: 360px; width: 100%;"></div>
Axis X value:<input id="xValue" value="10" type="number" style="width: 85px;" placeholder="Enter Value"/>
Axis Y value:<input id="yValue" value="71" type="number" style="width: 85px;" placeholder="Enter Value"/>
<button id="displayCrosshair">Display Crosshair</button>
JavaScript
var inputXValue = document.getElementById("xValue");
var inputYValue = document.getElementById("yValue");
var chart = new CanvasJS.Chart("chartContainer",{
title: {
text: "Display Crosshair at given X & Y Value"
},
axisX: {
crosshair: {
enabled: true
},
},
axisY: {
crosshair: {
enabled: true
},
},
data: [
{
type: "line",
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();
function createEvent(clientX, clientY){
var event = new MouseEvent("mousemove", {
view: window,
bubbles: true,
cancelable: true,
clientX: clientX + $("#chartContainer").offset().left - $(window).scrollLeft(),
clientY: clientY + $("#chartContainer").offset().top - $(window).scrollTop()
});
return event;
}
$("#displayCrosshair").on("click", function() {
var chartCanvas = $("#chartContainer").find(".canvasjs-chart-canvas").get(1);
var pixelX = chart.axisX[0].convertValueToPixel(parseInt(inputXValue.value));
var pixelY = chart.axisY[0].convertValueToPixel(parseInt(inputYValue.value));
chartCanvas.dispatchEvent(createEvent(pixelX , pixelY));
})