З якоїсь причини заповнювач для моїх предметів, що сортуються, становить близько 10 пікселів. Усі мої сортовані вироби мають різну висоту. Як я можу змінити висоту кожного заповнювача відповідно до переміщуваного елемента?
З якоїсь причини заповнювач для моїх предметів, що сортуються, становить близько 10 пікселів. Усі мої сортовані вироби мають різну висоту. Як я можу змінити висоту кожного заповнювача відповідно до переміщуваного елемента?
Відповіді:
Зазвичай я вирішую це шляхом прив'язки зворотного виклику, який встановлює висоту заповнювача до висоти елемента, що сортується до start
події. Це просте рішення, яке дає вам чіткий контроль над тим, як ви хочете, щоб відображався ваш заповнювач.
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.item.height());
}
});
Дивіться оновлений тестовий випадок
Ви пробували встановити forcePlaceholderSize:true
властивість? Прочитайте сторінку документації jQuery UI для сортування .
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
на .ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; }
(так що видаліть висоту) Отже, @DarthJDG ви маєте рацію!
Ваші елементи display: block
? Вбудовані елементи можуть змусити заповнювач місця не правильно утримувати висоту. Напр. цей jsFiddle, схоже, має подібну проблему з описаною вами. Додавання display: block
до .portlet
класу це виправляє.
Замість того, щоб використовувати "ui.item.height ()", ви можете використовувати "ui.helper [0] .scrollHeight" для стабільного результату, коли також перетягуєте елемент із зовнішнього контейнера.
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.helper[0].scrollHeight);
}
});
Ви можете встановити стиль для заповнювача як варіант для сортування.
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight"
});
І просто надайте цьому стилю висоту. Сподіваюся, це працює.
У моєму випадку я знайшов рішення, подібне до JP Hellemons , в якому я примушую висоту заповнювача (з ! Важливим ) до власного, а також встановлюю видимість із фоном, щоб бачити зміни для себе (також ви можете стилізувати свій заповнювач як завгодно, як вам заманеться) ).
Це також працює з 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