[英]How to disable drag selection with middle mouse button?
转到kitchensink ,使用鼠标中键,尝试在画布的空白区域单击并按住鼠标,然后移动鼠标。
显示选择矩形。 如何禁用它? 我问是因为,我有鼠标中键单击并拖动到早期版本的Fabric中的画布平移。 升级到新版本后,画布的行为异常。
我试图通过执行canvas.selectable = false;
来禁用event.button == 1
在鼠标按下时在画布上的选择canvas.selectable = false;
在mousedown中,并在mouseup事件处理程序中将其设置为true。
那没用。
有什么想法如何使用鼠标中键单击和拖动来禁用选择?
问题是最近启用的结构单击其他按钮而不是单击左键。 关键是要处理左边,要处理右边,不能处理中间...我猜中间按钮遵循左按钮的流程是因为它不是右按钮。
这里是Fabric的mousedown处理函数的摘录,版本为1.7.3(当前为2017年2月)。
__onMouseDown: function (e) {
var target = this.findTarget(e);
// if right click just fire events
var isRightClick = 'which' in e ? e.which === 3 : e.button === 2;
if (isRightClick) {
if (this.fireRightClick) {
this._handleEvent(e, 'down', target ? target : null);
}
return;
}
... continue normal flow ...
因此,这需要适当的修复。
按照建议发布自定义事件是一个补丁,但是通常这根本不会发生。 (因为该项目的ima管理员即时通讯将对此进行修复)
Prasanth,您的问题很简单。 你有错字。 尝试像这样使用:
canvas.selection = false;
这是您可以尝试的代码:
canvas.on('mouse:down',function(e){
canvas.selection = true;
});
canvas.on('mouse:down',function(e){
if( e.e.button == 1 ) {
canvas.selection = false;
};
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.