FabricJS - 避免触发" canvas.on('鼠标:up',function(){...})"物体移动后

时间:2016-06-29 15:36:36

标签: javascript events canvas listener fabricjs

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

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

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

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

如何触发事件:

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

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

2 个答案:

答案 0 :(得分:3)

你可以这样做:

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
});

答案 1 :(得分:0)

应避免添加def prepareSlackMessage(self, cur): from tabulate import tabulate query = "SELECT something_awesome FROM my_awesome_table" print query out = dbQuery(cur, query) if len(out) > 0: df = pd.DataFrame(data=list(out), index=None, dtype=object) df_tab = tabulate([list(row) for row in df.values], headers=list(df.columns), tablefmt="grid", stralign="center") print df_tab else: df_tab = "Nothing to post, the database query didnt return any result" print df_tab return df_tab 侦听器
cos move事件在每个像素上触发
参见fabric.js event inspector sample

在大多数情况下,您只需要比较
mouse:movemousedown的两个点击位置

mouseup