禁用Fabric.js中的组选择

Tim*_*nen 15 javascript fabricjs

如何在Fabric.js中禁用组选择并一次保留一个可选的单个对象?对于组选择,我的意思是使用例如选择多个对象.SHIFT +点击.

Dak*_*ika 30

你可以轻松实现这一目标

  canvas.selection = false; // disable group selection
Run Code Online (Sandbox Code Playgroud)

如果你想要它在个别对象上

  rect.set('selectable', false); // make object unselectable
Run Code Online (Sandbox Code Playgroud)

  • 是否可以选择这个单一的物体?AFAIK会禁用所有选择. (5认同)
  • @Timo:不,这会在您按住鼠标左键然后移动鼠标时禁用选择。您将看到什么也没有发生,即选择框不可见。 (3认同)

CQ *_*oth 7

通过选择侦听器画布方法禁用组选择(在我看来是最好的方法)

canvas.on('selection:created', (e) => {
  if(e.target.type === 'activeSelection') {
    canvas.discardActiveObject();
  } else {
    //do nothing
  }
})
Run Code Online (Sandbox Code Playgroud)

  • 在应用程序的整个交互过程中,您不必在整个画布上打开或关闭画布选择之间切换。这可能视情况而定,具体取决于您正在与之交互的对象。我觉得它更有针对性。 (3认同)