我使用Isotope插件來過濾我的產品列表。我也使用Bootstrap 3作爲總體佈局,頁面應該是響應式的,所以列寬是基於百分比的。我想要等高的縮略圖圖像和相等的寬度,一個簡單的網格。首先,我嘗試了「fitRows」佈局模式,但是我遇到了錯誤的列數顯示問題(在所有瀏覽器中),並發現Cubica在https://github.com/cubica/isotope-sloppy-masonry發佈的額外佈局行爲「Sloppy Masonry」 - 這樣可以解決列寬問題一個響應式網格。爲了解決相同的高度,我做了一個簡單的JS來設置所有高度以適應最高的項目。Chrome中的高度問題與jQuery的同位素響應佈局與Bootstrap 3
我的問題:在Chrome中,存在縮略圖高度出錯,太小而內容被切斷的問題。(請注意,問題是我的resizeboxes()
函數沒有注意到。)
(非)有趣的事情是它不會每次都發生。另外,當我調整Chrome窗口的大小時,佈局正確...
我讀到Isotope v2(現在測試版)會更好地處理響應式佈局,但我無法讓它工作得更好。現在我已經嘗試了很多不同的技巧,但是我無法按照自己的想法得到它。目前的代碼適用於除Chrome之外的所有主流瀏覽器...幫助表示讚賞!
這是我目前(略簡體)代碼:
<div class="row" id="listing">
<?php foreach ($products as $p): ?>
<div class="col-md-3 list">
<img src="<?=$p->image_file?>" class="img-responsive" />
<h4><?=$p->title?></h4>
</div>
<?php endforeach; ?>
</div>
JS功能,使高度相等的:
function resizeBoxes()
{
var h = 0;
$('div.view').each(function()
{
var b = $(this);
if (h < b.height()) h = b.height();
});
$('div.view').height(h);
}
和init同位素功能:
var $container = $('#listing');
function initIsotope()
{
$container.isotope({
layoutMode: 'sloppyMasonry',
});
}
$(window).resize(function() {
resizeBoxes();
initIsotope();
});
$(document).ready(function() {
resizeBoxes();
initIsotope();
});