我正在使用带有fabric.js覆盖的Openseadragon库。我有一种情况,我想拖动画布,但要用鼠标中键按下而不是鼠标主按钮。谁能帮我得到想要的行为?
最佳答案
OpenSeadragon没有标志,但是您可以使用MouseTracker轻松构建它。这是一个示例(从内存中进行编码,未经测试,但可以为您提供想法)。
var drag;
var mouseTracker = new OpenSeadragon.MouseTracker({
element: viewer.container,
nonPrimaryPressHandler: function(event) {
if (event.button === 1) { // Middle
drag = {
lastPos: event.position.clone()
};
}
},
moveHandler: function(event) {
if (drag) {
var deltaPixels = drag.lastPos.minus(event.position);
var deltaPoints = viewer.viewport.deltaPointsFromPixels(deltaPixels);
viewer.viewport.panBy(deltaPoints);
drag.lastPos = event.position.clone();
}
},
nonPrimaryReleaseHandler: function(event) {
if (event.button === 1) {
drag = null;
}
}
});
编辑:我在上面的示例代码中有一个错误;固定。