Z jakiegoś powodu element zastępczy dla moich sortowanych elementów ma około 10 pikseli. Wszystkie moje sortowane przedmioty mają różną wysokość. Jak mogę zmienić wysokość każdego symbolu zastępczego, aby pasował do przenoszonego elementu?
Z jakiegoś powodu element zastępczy dla moich sortowanych elementów ma około 10 pikseli. Wszystkie moje sortowane przedmioty mają różną wysokość. Jak mogę zmienić wysokość każdego symbolu zastępczego, aby pasował do przenoszonego elementu?
Odpowiedzi:
Zwykle rozwiązuję ten problem, wiążąc wywołanie zwrotne, które ustawia wysokość symbolu zastępczego do wysokości sortowanego elementu ze start
zdarzeniem. To proste rozwiązanie, które zapewnia precyzyjną kontrolę nad sposobem wyświetlania symbolu zastępczego.
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.item.height());
}
});
Czy próbowałeś ustawić forcePlaceholderSize:true
właściwość? Przeczytaj stronę z dokumentacją jQuery UI Sortable .
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
na .ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; }
(więc usuń wysokość) Więc @DarthJDG masz rację!
Czy twoje elementy display: block
? Elementy wbudowane mogą spowodować, że symbol zastępczy nie będzie prawidłowo zachowywał wysokości. Na przykład. ten jsFiddle wydaje się mieć podobny problem do tego, który opisałeś. Dodanie display: block
do .portlet
klasy rozwiązuje ten problem.
Zamiast używać „ui.item.height ()”, możesz użyć „ui.helper [0] .scrollHeight”, aby uzyskać stabilny wynik również podczas przeciągania elementu z zewnętrznego kontenera.
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.helper[0].scrollHeight);
}
});
Możesz ustawić styl dla symbolu zastępczego jako opcję sortowania.
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight"
});
I po prostu nadaj temu stylowi wysokość. Mam nadzieję, że to zadziała.
W moim przypadku znalazłem rozwiązanie podobne do JP Hellemons , w którym wymuszam wysokość symbolu zastępczego (z ! Ważne ) na niestandardową, a także ustawiam widoczność z tłem, aby zobaczyć zmiany dla siebie (również możesz w ten sposób stylizować swój element zastępczy tak jak chcesz ).
Działa to również z 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