Vì lý do nào đó, trình giữ chỗ cho các mục có thể sắp xếp của tôi là khoảng 10px. Tất cả các mục có thể phân loại của tôi có chiều cao khác nhau. Làm cách nào để thay đổi chiều cao của từng phần giữ chỗ để phù hợp với mục đang được di chuyển?
Vì lý do nào đó, trình giữ chỗ cho các mục có thể sắp xếp của tôi là khoảng 10px. Tất cả các mục có thể phân loại của tôi có chiều cao khác nhau. Làm cách nào để thay đổi chiều cao của từng phần giữ chỗ để phù hợp với mục đang được di chuyển?
Câu trả lời:
Tôi thường giải quyết điều này bằng cách liên kết một lệnh gọi lại đặt chiều cao của trình giữ chỗ với chiều cao của mục đang được sắp xếp cho start
sự kiện. Đó là một giải pháp đơn giản cung cấp cho bạn khả năng kiểm soát chi tiết đối với cách bạn muốn trình giữ chỗ của mình được hiển thị.
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.item.height());
}
});
Bạn đã thử đặt thuộc forcePlaceholderSize:true
tính chưa? Hãy đọc trên trang tài liệu jQuery UI Sortable .
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
thành .ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; }
(vì vậy hãy loại bỏ chiều cao) Vì vậy, @DarthJDG bạn đã đúng!
Các yếu tố của bạn display: block
? Các phần tử nội dòng có thể làm cho trình giữ chỗ không giữ đúng chiều cao. Ví dụ. jsFiddle này dường như gặp sự cố tương tự như sự cố bạn đã mô tả. Thêm display: block
vào .portlet
lớp sẽ sửa nó.
Thay vì sử dụng "ui.item.height ()", bạn có thể sử dụng "ui.helper [0] .scrollHeight" để có kết quả ổn định khi kéo một mục từ vùng chứa bên ngoài.
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.helper[0].scrollHeight);
}
});
Bạn có thể đặt kiểu cho trình giữ chỗ của mình như một tùy chọn để có thể sắp xếp.
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight"
});
Và chỉ cần cung cấp cho phong cách đó một chiều cao. Hy vọng rằng hiệu quả.
Trong trường hợp của tôi, tôi đã tìm thấy giải pháp tương tự như JP Hellemons , trong đó tôi buộc chiều cao của trình giữ chỗ (with ! Important ) thành tùy chỉnh và cũng đặt chế độ hiển thị với nền để xem các thay đổi cho bản thân tôi (bạn cũng có thể tạo kiểu này theo cách này bất kỳ cách nào bạn muốn ).
Điều này cũng hoạt động với display: inline-block;
.ui-sortable-placeholder {
background:red !important;
height: 2px !important; // this is the key, set your own height, start with small
visibility: visible !important;
margin: 0 0 -10px 0; // additionaly, you can position your placeholder,
} // in my case it was bottom -10px