gpt4 book ai didi

javascript - FabricJS - 避免在对象结束移动后触发 "canvas.on(' 鼠标 :up', function() { ... })"

转载 作者:行者123 更新时间:2023-11-30 11:55:30 36 4
gpt4 key购买 nike

我正在使用 FabricJS 制作一个可以添加矩形的 Canvas 。将矩形添加到 Canvas 后,可以将其拖动到任何位置。

我的问题是当我停止拖动矩形时,事件:

canvas.on('mouse:up', function(element) { ... });

被触发,但这是不受欢迎的行为。

如何触发事件:

canvas.on('mouse:up', function(element) { ... });

只有当有效点击鼠标左键时,而不是当我结束拖动对象时?

最佳答案

你可以这样做:

var _isDragging = false;
var _isMouseDown = false;

canvas.on('mouse:down', function () {
_isMouseDown = true;
// other stuff
});

canvas.on('mouse:move', function () {
_isDragging = _isMouseDown;
// other stuff
})

canvas.on('mouse:up', function(element) {
_isMouseDown = false;
var isDragEnd = _isDragging;
_isDragging = false;
if (isDragEnd) {
// code for drag complete
} else {
// code for no drag mouse up
}
// code for both
});

关于javascript - FabricJS - 避免在对象结束移动后触发 "canvas.on(' 鼠标 :up', function() { ... })",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38104185/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com