2017-03-02 8 views
0

Ich baue einen Responsive Image Viewer, der OpenSeaDragon integriert, der ein anderes Panning-Verhalten bei verschiedenen Bildschirmbreiten erfordert. Bei schmalen Breiten sollte das Schwenken nicht erlaubt sein, aber wenn das Fenster breiter ist, sollte das Schwenken aktiviert werden.Can OpenSeaDragon Panning-Optionen können nach der Initialisierung geändert werden

Ein vereinfachtes Beispiel folgt:

Nehmen wir an, das Fenster ziemlich breit ist, dann werden die Panning-Optionen bei der Initialisierung sein:

OpenSeaDragon({ panHorizontal: true, panVertical: true, ... });

(Ich verstehe, das sind die Standardwerte sind, jedoch mit Ausnahme ihnen Hier für die Übersichtlichkeit.)

Ich kann dann erkennen, ob Panning aktiviert/deaktiviert werden sollte mit matchMedia in einem Fenster Resize Event Handler, etwas wie:

// (Crude example, resize would need debouncing etc) 
window.addEventListener('resize', function() { 
    if (window.matchMedia('(min-width:800px)').matches) { 
    // allow panning 
    } else { 
    // prevent panning 
    } 
}); 

Meine Frage ist, können die Schwenkbeschränkungsmöglichkeiten zur Verfügung gestellt, wenn OpenSeaDragin initialisiert wird später geändert werden, ohne den Betrachter neu initialisieren zu müssen? Gelingt dies nicht, gibt es eine andere Möglichkeit, den gleichen Effekt zu erzielen? Ich habe mir die Dokumente und den Code von OpenSeaDragon angesehen, aber ich sehe keinen Weg, dies zu tun.

Antwort

1

Ja, können Sie diese Eigenschaften direkt ohne neu zu initialisieren, die geändert werden, etwa so:

var viewer = OpenSeaDragon({ panHorizontal: true, panVertical: true, ... }); 

viewer.panHorizontal = false; 
+1

ehrfürchtig. Vielen Dank! – dacmo

Verwandte Themen