Как перетащить холст Openseadrago с помощью средней кнопки мыши - PullRequest
0 голосов
/ 20 ноября 2018

Я использую библиотеку Openseadragon с наложением fabricjs.У меня есть случай, когда я хочу перетащить холст, но вместо основной кнопки мыши я хочу перетащить его нажатием средней кнопки мыши.Может ли кто-нибудь помочь мне получить желаемое поведение?

1 Ответ

0 голосов
/ 28 ноября 2018

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;
    }
  }
});

EDIT : у меня была ошибка в приведенном выше примере кода;неподвижная.

...