javascript - 获取 Canvas 中光标的位置

标签 javascript jquery fabricjs

我试图在单击时获取 canavs 中的光标位置,但我的控制台中弹出以下错误

Uncaught TypeError: canvas.getBoundingClientRect is not a function

这是我的代码:

$(".canvas-wrapper").click(function getCursorPosition(canvas, event) {
  var rectangle = canvas.getBoundingClientRect();
    var x = event.clientX - rectangle.left;
    var y = event.clientY - rectangle.top;
    console.log("x: " + x + " y: " + y);
});

我根本不明白出了什么问题。有什么帮助吗?

最佳答案

jQuery 传递给回调函数的第一个参数不是元素,而是事件对象。可以通过 this 访问该元素。

来自jQuery docs :

handler

Type: Function( Event eventObject )
A function to execute each time the event is triggered.

您可以将代码更改为:

$(".canvas-wrapper").click(function getCursorPosition(event) {
  var rectangle = this.getBoundingClientRect();
    var x = event.clientX - rectangle.left;
    var y = event.clientY - rectangle.top;
    console.log("x: " + x + " y: " + y);
});

关于javascript - 获取 Canvas 中光标的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39765993/

相关文章:

javascript - 点击div向下移动

javascript - 将背景大小和背景位置的相对值转换为绝对 PX 值

javascript - fabric.js 中的圆形控制旋钮

javascript - Canvas 图像旋转不居中

javascript - applet 上的 div 标签

javascript - phonegap admob 插件在 xcode 中获取横幅高度

javascript - Trig/javascript 计算在不裁剪的情况下适应图像旋转所需的填充

javascript - javascript函数知道它的名字吗

javascript - 从 ngOnInit 向函数传递值

javascript - Fabric.js : how to deselect one or multiple objects on canvas?