在我的项目中的效果 : http://lixianglong3210.gitee.io/packery/

官网地址: https://packery.metafizzy.co/

# 入门用法

# 1、筛选过滤

(官网例子:https://codepen.io/desandro/pen/mjcGq)

html

<h1>Packery demo - Draggabilly with appended items</h1>
<div class="packery">
  <div class="item w4 h2"></div>
  <div class="item w2 h2"></div>
  <div class="item w2 h4"></div>
  <div class="item w2 h2"></div>
  <div class="item w4 h4"></div>
  <div class="item w2 h2"></div>
  <div class="item w2 h4"></div>
  <div class="item w4 h4"></div>
  <div class="item w2 h2"></div>
  <div class="item w2 h2"></div>
</div>
<p><button id="add-items">Add more items</button>

css

* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
body { font-family: sans-serif; }
.packery {
  background: #FDD;
  background: hsla(45, 100%, 40%, 0.2);
  max-width: 520px;
}
/* clearfix */
.packery:after {
  content: ' ';
  display: block;
  clear: both;
}
.item {
  width: 40px;
  height: 40px;
  float: left;
  background: #C09;
  border: 4px solid #333;
  border-color: hsla(0, 0%, 0%, 0.3);
}
.item:hover {
  border-color: white;
  cursor: move;
}
.item.w2 { width:   80px; background: #9C0; }
.item.h2 { height:  80px; background: #0C9; }
.item.h4 { height: 160px; background: #C90; }
.item.w4 { width:  160px; background: #90C; }
.item.is-dragging,
.item.is-positioning-post-drag {
  border-color: white;
  background: #09F;
  z-index: 2;
}
button {
  font-size: 20px;
}

javascript

// https://packery.metafizzy.co/packery.pkgd.js and 
// https://draggabilly.desandro.com/draggabilly.pkgd.js added as external resource
var $container = $('.packery');
$container.packery({
  columnWidth: 80,
  rowHeight: 80
});
// bind draggabilly events to item elements
$container.find('.item').each( makeEachDraggable );
function makeEachDraggable( i, itemElem ) {
  // make element draggable with Draggabilly
  var draggie = new Draggabilly( itemElem );
  // bind Draggabilly events to Packery
  $container.packery( 'bindDraggabillyEvents', draggie );
}
// add more items
$('#add-items').click( function() {
  var items = '<div class="item w2 h2"></div>' +
    '<div class="item w2 h2"></div>' +
    '<div class="item w4 h2"></div>' +
    '<div class="item h4 w4"></div>' +
    '<div class="item w2 h2"></div>' +
    '<div class="item w2 h4"></div>' +
    '<div class="item w2 h2"></div>';
  var $items = $(items);
  // add to packery layout
  $container.append( $items )
    .packery( 'appended', $items )
  // make item elements draggable
  $items.each( makeEachDraggable );
});