ajax を使用して、画像を含む div を更新しています。最初に石積みを使用してレイアウトを追加します。
次に、ajax 呼び出しは、html() メソッドを使用して div を更新する js を返します。完了したら、 を呼び出していmasonry('reloadItems')
ます。しかし、メーソンリーはすべての画像を互いにロードします。ページのサイズを変更すると、機能します。ページのサイズ変更を手動でトリガーしようとしましたが、石工が調整を行うことはありません。
JS:
$('#timerange-select, #category_select').bind('change', function() {
form=$('#images-filter-form');
$.get(form.action, form.serialize(),function(){
var $container = $('#images_container');
$container.imagesLoaded(function(){$container.masonry('reloadItems');});
$(window).trigger('resize');
}, 'script');
});
この ajax リクエストの応答は次のとおりです。
$('#images_container').html('<%= escape_javascript(render("shared/random_issues")) %>');
だから私は画像を追加していません。正確にはコンテナを交換しています。
これは実際には互いにロードされた 10 個のイメージです。
編集: http://stackoverflow.com/questions/17697223/masonry-images-overlapping-above-each-other/17697495?noredirect=1#17697495
css と html を参照してください。