是否可以允许鼠标中键单击以拖动节点和边缘,类似于启用userPanning
时左键单击通常执行的操作?我的应用程序几乎不需要平移,所以我希望默认行为是框选择,并且只允许在中键单击时进行平移。
我尝试捕获所有中间点击事件,而是触发左键点击,其中包含以下代码的多种变体(jsfiddle):
cy.userPanningEnabled(false); //no panning by default
cy.boxSelectionEnabled(true); //box selection instead
$('#cy').on('mousedown', function(e) {
if (e.which == 2) {
// Middle click.
cy.userPanningEnabled(true);
// ..some code here to replicate left-click event, such as conceptually:
// e.which = 1; $('#cy').trigger(e);
} else {
cy.userPanningEnabled(false);
}
});
然而,无论我如何尝试,我似乎无法复制在cytoscape.js实例中触发的左键单击事件。
有谁知道这是否可行?
答案 0 :(得分:1)
无法保证何时执行手势检查。这意味着您无法在手势事件序列期间可靠地禁用平移。
至于中间点击,请考虑设备/操作系统支持:
即使您只支持桌面设备,依靠中间点击仍然只支持少数用户。
更具包容性的方法是在平移模式和选择模式下进行切换,默认选择模式。
虽然我不建议使用中间点击,但如果您真的想要,可以使用它来编写自己的手势。平移逻辑非常简单,尤其是cy.panBy()
。