Bootstrap 4 - 需要折叠以调整砌体布局

Bootstrap 4 - Need Collapse to Adjust Masonry Layout

解法:

解决了将 Cycle2 换成类似的响应式幻灯片脚本的问题。

Slick

jsfiddle

     (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 - 减去排水沟。

我正在崩溃 link,这就是问题所在。我无法让网格项目将其容器向下推,这将重新格式化砌体布局 - 我想我的措辞是正确的。

它目前显示和隐藏都很好,但布局保持不变,因此它最终显示在其他元素下方,而不是保持砖石布局。

删除了我所有的解决方案,所以 fiddle 纯粹是针对这一点的布局。

jsfiddle here

我觉得应该包括以下内容,但没有运气。 :[

$grid.on('shown.bs.collapse', function() {
  $grid.masonry('layout');
});

本质上,当折叠打开时,保持布局完整,但我无法将其正确转换为代码。

另一种尝试是将 bootstrap 事件与砌体布局合并。不过,我无法让它工作。

$('.collapsing').on('show.bs.collapse', function () {
  // do something…
  $grid.masonry('layout');
});

Fiddle 包含这两个。

我想我需要读起来更像

的东西
  1. What is the container size at closed
  2. What is it at open
  3. 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/

唯一的问题是砌体永远不会自然地用 bootstrap 坍塌方法动画,砌体只有在 bootstrap 坍塌完成后才会开火。我知道的无赖:-(