解决方案:
解决了将 Cycle2 换成类似的响应式幻灯片脚本的问题。
(function($) {
var $carousel = $('.carousel'),
$masonry = $('#cards');
$carousel.on('afterChange', function(slick){
$masonry.masonry({
itemSelector: '.card-item'
}).on('shown.bs.collapse hidden.bs.collapse', function() {
$masonry.masonry();
});
}).slick({
arrows: false,
speed: 0,
infinite: true,
autoplay: true,
autoplaySpeed: 400
});
})(jQuery);
原始问题:
我从 bootstrap 4 中获取了卡片列“masonry”,并将其调整为与 masonry js 一起使用 - 他们只支持我能找到的 B3 - 减去排水沟。
我正在添加一个折叠链接,这就是问题所在。我无法让网格元素将其容器向下推,这将重新格式化砌体布局 - 我想我的措辞是正确的。
它目前显示和隐藏都很好,但布局保持不变,所以它最终显示在其他元素下面,而不是保持砖石布局。
剥离了我所有的解决方案,所以 fiddle 纯粹是在这一点上布局。
我觉得它应该涉及以下内容,但没有运气。 :[
$grid.on('shown.bs.collapse', function() {
$grid.masonry('layout');
});
本质上,当折叠打开时,保持布局完整,但我无法将其正确转换为代码。
另一种尝试是将引导事件与砌体布局合并。不过,我无法让它工作。
$('.collapsing').on('show.bs.collapse', function () {
// do something…
$grid.masonry('layout');
});
Fiddle 包含这两个。
我想我需要一些读起来更像的东西
- What is the container size at closed
- What is it at open
- Change layout to size at open
不确定如何为其编写代码。 :/
最佳答案
试试这个.on
方法
(function ($) {
var $masonry = $('#cards');
$masonry.masonry({
itemSelector: '.card-item'
}).on('shown.bs.collapse hidden.bs.collapse', function() {
$masonry.masonry();
});
})(jQuery);
参见工作 fiddle https://jsfiddle.net/joshmoto/ax1d7ok6/
唯一的问题是,masonry 永远不会使用 bootstrap collapse 方法自然地设置动画,masonry 只有在 bootstrap collapse 完成后才会触发。无赖我知道:-(
关于jquery - Bootstrap 4 - 需要折叠来调整砌体布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44554486/