OpenLayersを使用してマップを表示し、AdminLteをインターフェイスに使用しています。
私の問題:特定のページのメインの左側のサイドバーを折りたたむと、すべてのボックスとその内容がサイズを変更するため(方法はわかりません)、マップも大きくなります。問題は、それが発生すると、マップに表示されているすべてのフィーチャが明らかに位置を変更し、本来あるべき場所にないことです。
私が欲しいもの:サイドバーが崩壊した後に地図を再描画すること。
なにか提案を?
私は試した:
$('.navbar-collapse').on('shown.bs.collapse', function() {
map.updateSize();
});
そして:
$('.sidebar').on('shown.bs.collapse', function() {
map.updateSize();
});
しかし、役に立たない...
編集:私の質問はこれに似ています:OpenLayers:マップdivの流動的なcssレンダリング後にマウス座標とベクターレイヤーを再調整する方法ですが、彼の解決策は私には機能しません:)
編集2:明確にするために:私の問題の解決策は、サイドバーが折りたたまれたときにmap.updateSize()メソッドを呼び出すことだと思います。問題は、サイドバーの折りたたみ/拡張が終了した瞬間を捉える方法がわからないことです!
私が見つけた一時的な解決策は、サイドバーをトリガーするボタンが折りたたまれたときにタイムアウトを開始してから、map.updateSize()メソッドを呼び出すことでした。
$('.sidebar-toggle').click(function(){
setTimeout(function(){ map.updateSize(); }, 500);
});
それは動作します...しかし、それは一種のまあです:/
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加