ページにリーフレット マップを表示すると、奇妙な動作が発生します。通常、マップは期待どおりにレンダリングされ、うまく機能します。ただし、JavaScriptで検出したフォームでエラーが発生した場合にのみマップを表示したい。そのため、親を設定し<div id="map">
てdisplay: none;
後で必要に応じて表示すると、タイルが読み込まれず (または部分的にのみ読み込まれて続行されない)、マップが奇妙に「ずれ」ます (js で定義されているように中央に配置されません)。
display: none;
私の考えでは、ブラウザが親内の要素をレンダリングしないのではないでしょうか?
$(document).ready(...)
関数でマップを非表示にしてみましたが、違いはありませんでした。マップを非表示にして表示するとすぐに、同じ動作が繰り返されます。これを Firefox 44.0 と Chromium 48.0 でテストしましたが、動作は一貫しています。
どんなヒントでも役に立ちます。これは、リモートで読み込まれた要素 (ajax) の一般的な動作ですか?
編集1:
これで解決策と回避策がわかりました (以下の回答を参照してください) が、これがリモートで読み込まれた要素のグローバルな動作であるかどうかはまだわかりません。説明をありがとう。
編集2:
説明については、受け入れられた回答を参照してください。