javascript - 没有键修饰符的fabric js中的多选
问题描述
我想知道是否有一种方法可以在fabric js画布中主动设置多选“模式”而不按住shift?
我希望通过监听绑定到复选框的布尔值来激活多选。
我一直在阅读 fabricjs 文档,没有发现任何关于没有 shift 修饰键的多选的信息。
我不确定我的请求是否有效,但任何指针将不胜感激。
所以基本上我监听 mouse:down 事件并检查我的布尔值是否为真/假,如果为真,我想进入多选模式。
canvas.on('mouse:down', evt => {
if(this.multiSelect) {
// activate multi-select
}
}
解决方案
您可以收听该selection:created
事件,然后将每个新选择推送到一个数组中,然后您将使用该数组创建一个ActiveSelection
包含多个对象的数组。当您设置this.multiSelect
为 false 时,您还需要清空multiSelection
数组。像这样的东西:
var multiSelection = [];
canvas.on('selection:created', selected => {
if(this.multiSelect) {
multiSelection.push(selected);
var groupSelection = new fabric.ActiveSelection(multiSelection)
canvas.setActiveObject(groupSelection);
}
});
推荐阅读
- python - discord bot 是否仅在我运行 bot.py 文件时运行?
- sqlite - SQLITE 日期偏移量
- java - 自定义底部导航栏项目布局
- python - 将系列从 pandas 转换为 pyspark:需要使用“groupby”和“size”,但 pyspark 会产生错误
- javascript - 如何在本机反应中对齐项目?
- windbg - “检测到 PNP/INF 版本与图形适配器上的 KMD 文件版本不匹配”
- pointers - 为什么在执行指针追逐时这条跳转指令如此昂贵?
- php - 在 WooCommerce 中单击“添加到购物车”按钮后询问电子邮件或电话
- java - Blazegraph 中的词汇创建
- javascript - 通过动态变量更新方法不起作用