後工作的許多天,我已經能夠解決我的問題要歸功於插件的作者DeSando。
正如他在本文中解釋http://metafizzy.co/blog/beyonce-seamless-fluid-image-masonry /由於JavaScript和CSS之間的像素舍入差異而出現空白。
在我的情況下,我有一個基於四列的網格,當瀏覽器的寬度不能每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();
});
我爲我的英語很抱歉。我希望這對我們很多人都有用。
我認爲這個問題可能出現在瀏覽器寬度不能被colums數量整除的地方。 –