我尝试使用Masonry网站上的文件以及砌体轨道宝石,但我遇到了同样的问题。
基本上,当我调整浏览器窗口的大小时,框不会移动以适应新的页面大小。相反,我只是在浏览器中出现滚动条。
我知道文件正在加载正确,并选择正确的选择器,因为如果我更改masonry()参数中的列宽,当我加载页面时,这些框确实出现在不同的位置。
另外,我正在使用Bootstrap,如果这是相关的,但我已经命名了选择器,因此它们不会与为bootstrap保留的选择器冲突 - 例如使用#masonry-container代替#container。
非常感谢任何帮助,谢谢!!
的application.js:
//= require masonry/jquery.masonry
message_board /显示:
<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'
});
});
});
答案 0 :(得分:0)
以下是我让Masonry在我的Rails项目中工作的方法。也许这会对你有帮助......
我从网站下载了“jquery.masonry.min.js”文件并将其放在我的app \ assets \ javascripts目录中。
我补充说
//= require jquery.masonry.min
到我的application.js文件
我在app \ assets \ stylesheets目录下创建了一个单独的css文件,用于砌筑(只是为了保持整洁),名为“masonry.css.scss”。这是我的CSS(我使用的是“box”而不是你的“item”):
.box {
margin: 5px;
padding: 5px;
background: #D8D5D2;
font-size: 11px;
line-height: 1.4em;
float: left;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
display: inline;
width: 260px;
}
.box img {
width: 100%;
}
由于我在“home \ index.html.erb”文件中使用了代码,因此我在app \ assets \ javascripts“目录下创建了一个”home.js“文件。这是js代码我有:
jQuery(document).ready(function () {
var $container = $('#UserShoppingRequestsContainer');
$container.imagesLoaded(function () {
$container.masonry({
itemSelector:'.box',
isAnimated:true,
animationOptions:{
duration:750,
easing:'linear',
queue:false
}
});
});
})
最后,在我的“home \ index.html.erb”文件中,我有类似的内容:
<div id="UserShoppingRequestsContainer">
<% @shopping_requests.each do |shopping_request| %>
<div class="box col3" id="<%= shopping_request.id.to_s %>">
<%= link_to image_tag(shopping_request.request_picture.url(:medium)), user_shopping_request_path(shopping_request.user, shopping_request) %>
<p class="serif1_no_padding"><%= shopping_request.category.name %></p>
</div>
<% end %>
</div>
我认为就是这样。