私は解決することができました:
jQuery(window).load(function() {
var container = document.querySelector('.grid');
var pckry;
// using imagesLoaded http://desandro.github.io/imagesloaded
imagesLoaded(container, function() {
pckry = new Packery(container, {
itemSelector: '.grid-item',
rowHeight: '.grid-sizer',
percentPosition: true
});
});
});
は、私は私が持っていると思い、最終的なグリッドを添付しますプラグインの作者DeSandoに感謝します。
この投稿に記載されているように、http://metafizzy.co/blog/beyonce-seamless-fluid-image-masonry/JavaScriptとCSSのピクセルの丸めの違いによってギャップが発生します。
私の場合、私は4列に基づいてグリッドを持っていて、ブラウザの幅が4で割り切れないときは、ギャップが生まれました。したがって、DeSandroはhereを提案しているので、画像のコンテナを少し小さく設定し、画像の間隔を少し大きくすることで回避することができます。だから、私のウェブサイトで:
HTML
<div class="grid">
<div class="grid-item" ><a href="#"><img src="..." title="" class="lazy"></a></div>
<div class="grid-item grid-item--width2 " ><a href=#"><img src="..." title="" class="lazy"></a></div>
<div class="grid-item grid-item--width2 "><a href="#"><img src="..." title="" class="lazy"></a></div>
<div class="grid-item" ><a href="#"><img src="..." title="" class="lazy"></a></div>
<div class="grid-item" ><a href="#"><img src="..." title="" class="lazy"></a></div>
...
</div>
CSS
.grid {
margin: 0 auto;
width: 100.4%;
margin-bottom: 0px !important;
}
.grid-sizer,.grid-item {
width: 24.9%;
display: block;
float: left;
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
list-style: none!important;
}
/* 2 columns wide */
.grid-item--width2 {
width: 49.8%;
display: block;
float: left;
}
.grid-item img{
display:block;
width: 100.4%;
max-width: 100.4% !important;
}
JS
// init Packery
var grid = jQuery('.grid').packery({
itemSelector: '.grid-item',
percentPosition: true
});
// layout Packery after each image loads
grid.imagesLoaded().progress(function() {
grid.packery();
});
私は私の英語のためすみません。これが私たちの多くにとって有益なことを願っています。
私は、ブラウザの幅が列の数に割り切れないという問題が生まれたと思います。 –