How do I get mouse coordinates on Fabric.js?

。_饼干妹妹 提交于 2020-01-01 09:10:03

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!