in src/EnhancedScatterChart.ts [2173:2216]
public bindCrosshairEvents(): void {
if (!this.axisGraphicsContextScrollable) {
return;
}
this.axisGraphicsContextScrollable
.on("mousemove", () => {
const event: MouseEvent = <MouseEvent>getEvent();
let currentTarget = <SVGAElement>event.currentTarget,
svgNode: SVGElement = currentTarget.viewportElement,
scaledRect: ClientRect = svgNode.getBoundingClientRect(),
domRect: SVGRect = (<any>svgNode).getBBox(),
ratioX: number = scaledRect.width / domRect.width,
ratioY: number = scaledRect.height / domRect.height,
x: number = event.pageX,
y: number = event.pageY;
if (domRect.width > EnhancedScatterChart.MinViewport.width
&& !equalWithPrecision(
ratioX,
EnhancedScatterChart.DefaultCrosshairYPosition,
EnhancedScatterChart.CrosshairPrecision)) {
x = x / ratioX;
}
if (domRect.height > EnhancedScatterChart.MinViewport.height
&& !equalWithPrecision(
ratioY,
EnhancedScatterChart.DefaultCrosshairYPosition,
EnhancedScatterChart.CrosshairPrecision)) {
y = y / ratioY;
}
this.updateCrosshair(x, y);
})
.on("mouseover", () => {
this.crosshairCanvasSelection.style("display", "block");
})
.on("mouseout", () => {
this.crosshairCanvasSelection.style("display", "none");
});
}