Giả sử tôi có sáu thành phần <div>
bên trong một vùng chứa <div>
. Mỗi sáu div này là một hình vuông và có kiểu CSS float: left
được áp dụng. Theo mặc định, khi chúng đạt đến cạnh của vùng chứa <div>
, chúng sẽ được bao bọc.Xác định vị trí quấn trong các phần tử nổi
Bây giờ, câu hỏi của tôi là, bằng cách sử dụng Javascript, có thể xác định yếu tố nào được bao bọc không?
Nếu họ hiển thị trên trang như:
___ ___
| 1 | | 2 |
----- -----
___ ___
| 3 | | 4 |
----- -----
Tôi đang cố gắng để xác định rằng quấn xảy ra giữa các yếu tố thứ hai và thứ ba. Trong trường hợp bạn đang tự hỏi liệu tôi có bị mất trí hay không, lý do tôi đang cố gắng làm điều này là nếu một trong các hộp đó được nhấp vào, tôi muốn có thể thả xuống một vùng thông tin giữa các hàng với một số jQuery khéo léo.
___ ___
| * | | ! |
----- -----
| Someinfo|
___ ___
| * | | * |
----- -----
Bất kỳ ý tưởng nào về việc xác định nơi xảy ra vi phạm?
P.S. Lý do tôi đang nổi và để cho nó tự động quấn là làm cho nó đáp ứng. Ngay bây giờ nếu tôi thay đổi kích thước trình duyệt, nó kết thúc tốt đẹp các hộp cho phù hợp. Tôi không muốn chiều rộng cột mã cứng.
[EDIT] Nhờ câu trả lời được cung cấp bởi Explosion Pills, tôi đã có thể đưa ra giải pháp.
// Offset of first element
var first = $(".tool:first").offset().left;
var offset = 0;
var count = 0;
$(".box").each(function() {
// Get offset
offset = $(this).offset().left;
// If not first box and offset is equal to first box offset
if(count > 0 && offset == first)
{
// Show where break is
console.log("Breaks on element: " + count);
}
// Next box
count++;
});
sản lượng này như sau trong giao diện điều khiển:
Breaks on element: 7
Breaks on element: 14
Breaks on element: 21
Breaks on element: 28
Khi tôi có 30 hộp, mà kết thúc lên được 7 hộp rộng và 5 hàng (hàng cuối cùng chỉ có 2 ô trống)
Are divs phao chiều rộng tương đối hay tĩnh? – smilebomb
Chiều rộng tĩnh, 50x50 px –