砌体不适用于模态
Masonry not working with Modal
灵感加载为单列,而不是横跨屏幕。如果我将它从模态中取出,它会起作用,但为什么不在里面?
内部模式
模态外
_表格
<div id="inspirations-margin" class="transitions-enabled">
<% @inspirations.each do |inspiration| %>
<div class="box panel panel-default">
<%= inspiration.name %>
</div>
<% end %>
</div>
modals.js.coffee
$ ->
modal_holder_selector = '#modal-holder'
modal_selector = '.modal'
$(document).on 'click', 'a[data-modal]', ->
location = $(this).attr('href')
#Load modal dialog from server
$.get location, (data)->
$(modal_holder_selector).html(data).
find(modal_selector).modal()
false
$(document).on 'ajax:success',
'form[data-modal]', (event, data, status, xhr)->
url = xhr.getResponseHeader('Location')
if url
# Redirect to url
window.location = url
else
# Remove old modal backdrop
$('.modal-backdrop').remove()
# Replace old modal with new one
$(modal_holder_selector).html(data).
find(modal_selector).modal()
false
inspirations.js.coffee
$ ->
$('#inspirations-margin').imagesLoaded ->
$('#inspirations-margin').masonry
itemSelector: '.box'
isFitWidth: true
我看到这个人 运行 变成了 similar problem,但从来没有得到帮助。
问题是您在显示模态之前初始化砌体。你必须在显示模态后调用它。
$(modal_holder_selector).html(data).
find(modal_selector).modal()
$('#inspirations-margin').imagesLoaded ->
$('#inspirations-margin').masonry
itemSelector: '.box'
isFitWidth: true
该代码应该放在显示模态的回调中
对于 Bootstrap 模态:
$('#exampleModal').on( 'shown.bs.modal', function() {
$('.grid').masonry({
itemSelector: '.grid-item',
gutter: 20,
horizontalOrder: true
});
})
灵感加载为单列,而不是横跨屏幕。如果我将它从模态中取出,它会起作用,但为什么不在里面?
内部模式
模态外
_表格
<div id="inspirations-margin" class="transitions-enabled">
<% @inspirations.each do |inspiration| %>
<div class="box panel panel-default">
<%= inspiration.name %>
</div>
<% end %>
</div>
modals.js.coffee
$ ->
modal_holder_selector = '#modal-holder'
modal_selector = '.modal'
$(document).on 'click', 'a[data-modal]', ->
location = $(this).attr('href')
#Load modal dialog from server
$.get location, (data)->
$(modal_holder_selector).html(data).
find(modal_selector).modal()
false
$(document).on 'ajax:success',
'form[data-modal]', (event, data, status, xhr)->
url = xhr.getResponseHeader('Location')
if url
# Redirect to url
window.location = url
else
# Remove old modal backdrop
$('.modal-backdrop').remove()
# Replace old modal with new one
$(modal_holder_selector).html(data).
find(modal_selector).modal()
false
inspirations.js.coffee
$ ->
$('#inspirations-margin').imagesLoaded ->
$('#inspirations-margin').masonry
itemSelector: '.box'
isFitWidth: true
我看到这个人 运行 变成了 similar problem,但从来没有得到帮助。
问题是您在显示模态之前初始化砌体。你必须在显示模态后调用它。
$(modal_holder_selector).html(data).
find(modal_selector).modal()
$('#inspirations-margin').imagesLoaded ->
$('#inspirations-margin').masonry
itemSelector: '.box'
isFitWidth: true
该代码应该放在显示模态的回调中
对于 Bootstrap 模态:
$('#exampleModal').on( 'shown.bs.modal', function() {
$('.grid').masonry({
itemSelector: '.grid-item',
gutter: 20,
horizontalOrder: true
});
})