Tôi có lưới lỏng (chiều cao và chiều rộng). Các LIs luôn luôn hình chữ nhật và thích ứng với tự của mình với kích thước màn hình.Điền vào các khoảng trống trong phần tử danh sách
Bây giờ tôi cần phải điền vào các danh sách, vì vậy tất cả đều có cùng chiều cao. Điều này sẽ dễ dàng nếu tất cả các cột có một phần tử LI. Nhưng có các cột có kích thước gấp đôi và một số cột có thể chứa LI lớn. Trong một số trường hợp thậm chí còn có không gian trống ở giữa cột, bởi vì có một Li lớn một nhỏ và chỉ sau khi nó lớn một lần nữa.
Trên một số trang nội dung tất cả các li nằm trong một cột.
Trong mọi trường hợp, các li được lưu hành sang trái. Tôi đã thực hiện một số hình ảnh để giải thích các vấn đề:
Đầu tiên tôi muốn đếm con và so sánh chúng. Nhưng nó trở nên phức tạp khi tất cả các LI ở trong một cột đơn hoặc khi thiếu LI ở giữa cột.
Đây là những gì tôi đã cố gắng:
var longest = 0
$("ul.grid-col").each(function(){
var liCount, $that = $(this);
liCount = $that.find("> li").length;
if ($that.is(".double")){
if($that.find("li.big").length){
var bigCount = $that.find("li.big").length
liCount = (liCount - bigCount) + (bigCount * 4) //because one big has the size of 4 small one
}
liCount = liCount/2
}
if (longest < liCount){
longest = liCount
}
})
Bây giờ tôi biết có bao nhiêu LI của tôi cần phải lấp đầy khoảng trống, nó khá dễ dàng để điền vào chúng. Nhưng làm thế nào để tôi tìm ra nếu có một không gian trống ở giữa của li? Và làm thế nào bạn sẽ xử lý các trường hợp đặc biệt của cột đơn?
Bạn đã đi với điều này chưa? http://desandro.com/resources/jquery-masonry/ –