Masonry Web サイトのファイルと masonry-rails gem の両方を使用してこれを試しましたが、同じ問題が発生しています。
基本的に、ブラウザ ウィンドウのサイズを変更すると、ボックスが新しいページ サイズに合わせて移動しません。代わりに、ブラウザにスクロール バーが表示されるだけです。
ファイルが正常に読み込まれ、適切なセレクターが選択されていることはわかっています。たとえば、masonry() パラメーターの列幅を変更すると、ページを読み込むときにボックスが別の場所に表示されるためです。
また、関連する場合は Bootstrap を使用していますが、ブートストラップ用に予約されているセレクターと衝突しないようにセレクターに名前を付けています。たとえば、#container の代わりに #masonry-container を使用しています。
どんな助けでも大歓迎です、ありがとう!!
アプリケーション.js:
//= require masonry/jquery.masonry
メッセージボード/ショー:
<div id="show-message-board">
<%= render :partial => "show_message_board", :locals => { :messages => current_user.messages }, :remote => true %>
</div>
<script>
$(function(){
$('#masonry-container').masonry({
// options
itemSelector : '.item',
columnWidth : 50,
isAnimated: true
});
});
</script>
_show_message_board.html.erb:
<div id="masonry-container" class="transitions-enabled infinite-scroll clearfix">
<% messages.each do |message| %>
<div class="item">
<p class="message_from"><%= message.user.first_name %> <%= message.user.last_name %>:</p>
<p class="message_content"><%= message.content %></p>
</div>
<% end %>
編集:
他の場所で提案されているように、次を使用してみましたが、まだ機能しません!:
$(function(){
var $container = $('#masonry-container');
$container.imagesLoaded( function(){
$container.masonry({
itemSelector : '.item'
});
});
});