Mac OS X Safariでは最初の読み込みはうまくいきましたが、すべての新しい項目でグリッドを変更すると、それらのすべてが左上隅に積み重なりました。さらに、準備完了イベントを待ってCSSの高さを&の幅に設定しても問題は解決しませんでした。
私たちのサイトでは、メーソンリーグリッドに表示されるデータのカテゴリがあり、一度に1つのカテゴリのみが表示されます。ユーザはいつでもカテゴリを切り替えて、AJAXリクエストをトリガして新しいデータをロードすることができます。カテゴリを変更する場合、最新のSafari(9.1、10)やChromeなどのブラウザでは、我々は単純にすべての新しい要素にスワップするためにこれを行うことができます:動作しないのSafariの一部のバージョンでは、しかし
// domData is HTML string from the server
// IMJS is our global variable that we use for globals and lookups
$("#divTemplateCategoryName").after(domData); // insert new HTML
var elementsToAdd = $(".grid-item-template-info"); //select the elements
IMJS.MasonryGrid.masonry('addItems', elementsToAdd); // tell masonry to add them
IMJS.MasonryGrid.masonry('layout'); // tell masonry to layout again
、および私たちは、代わりにこれをしなければならなかった:
// domData is HTML string from the server
// IMJS is our global variable that we use for globals and lookups
IMJS.MasonryGrid.masonry('destroy'); // destroy the grid
$("#divTemplateCategoryName").after(domData); // insert new HTML
InitMasonry(); // re-do our entire masonry init
私はこのバグの影響を受ける可能性があるすべてのブラウザのバージョンを追跡するための時間を持っていないので、私はすべてのブラウザのために後者の方法に切り替えます。
スクリーンショットを追加してください - リンクが壊れています。 – opyate