问题
I'm trying to read the X coordinate of a mouse click on Fabric.js.
Here is my code. The console logs undefined
every time.
var canvas = new fabric.Canvas('c1');
canvas.on('mouse:down', function(e){
getMouse(e);
});
function getMouse(e) {
console.log(e.clientX);
}
回答1:
The best fix is this method
Implementation:
function getMouseCoords(event)
{
var pointer = canvas.getPointer(event.e);
var posX = pointer.x;
var posY = pointer.y;
console.log(posX+", "+posY); // Log to console
}
回答2:
To get coordinates based on set width and height on the canvas itself, use layerX and layerY property.
canvas.on('mouse:move', function(options) {
console.log(options.e.layerX, options.e.layerY);
});
回答3:
Try this,
function getMouse(e) {
console.log(e.e.clientX);
}
Demo
Updated, as canvas events
takes the options
as an argument
not an event
like,
canvas.on('mouse:down', function(options){
getMouse(options);// its not an event its options of your canvas object
});
function getMouse(options) {
console.log(options);// you can check all options here
console.log(options.e.clientX);
}
回答4:
Maybe this will help:
//Convert To Local Point
function toLocalPoint(event, canvas) {
var offset = fabric.util.getElementOffset(canvas.lowerCanvasEl), localX = event.e.clientX - offset.left, localY = event.e.clientY - offset.top;
return new fabric.Point(localX, localY);
}
回答5:
just use e.e.clientX
or
e.e.clientY
for getting positions
来源:https://stackoverflow.com/questions/20463025/how-do-i-get-mouse-coordinates-on-fabric-js