Mirador 4の拡大・縮小・回転の挙動を変更する必要があり、その変更方法に関する備忘録です。
セットアップ#
以下により、ローカルでMirador 4を起動します。
ポート4444で起動します。

zoomIn時の処理のカスタマイズ#
一例ですが、zoomInボタンをクリックした際の処理を以下のように変更してみます。
結果、zoomInボタンを押した際に、中心が少しずれながら、拡大・回転が行われることがわかります。
https://youtu.be/wn1WxpTVpS4
これを応用することで、Mirador 3の拡大・縮小・回転等のカスタマイズを行うことができます。
上記の例では、拡大や回転が完了するまで少し時間がかかっていました。これを即座に行いたい場合、以下のOpenSeadragonViewer.jsのcomponentDidUpdateをカスタマイズします。
viewerConfigオブジェクトのimmediatelyプロパティに基づき、拡大縮小や回転を即座に実施するかを設定できるようにします。
そして、先のZoomControls.jsにおいて、immediately: trueを追加します。
結果、以下のような挙動になります。
https://youtu.be/qfGo-WCQZoQ
以前の挙動に比べて、拡大や回転が即座に行われるようになりました。
拡大や回転を即座に行いたい理由#
現在、複数のウインドウで拡大・縮小・回転処理を同期するプラグインを作成しています。
この開発において、拡大・縮小・回転処理を即座に行わないと、うまく同期ができないケースがありました。
今回の修正では十分に考慮できていない点があるかと思いますが、いずれプルリクエストなどできればと思います。
まとめ#
Mirador 4のプラグイン開発にあたり、参考になりましたら幸いです。