Pour une raison quelconque, l'espace réservé pour mes éléments triables est d'environ 10 px. Tous mes articles triables ont des hauteurs différentes. Comment puis-je modifier la hauteur de chaque espace réservé pour correspondre à l'élément déplacé?
Réponses
Trop de publicités? Je résous généralement ce problème en liant un rappel qui définit la hauteur de l'espace réservé sur la hauteur de l'élément en cours de tri sur l'événement start
. C'est une solution simple qui vous permet de contrôler avec précision le mode d'affichage de votre espace réservé.
$( ".column" ).sortable({
connectWith: ".column",
start: function(e, ui){
ui.placeholder.height(ui.item.height());
}
});
Avez-vous essayé de définir la propriété forcePlaceholderSize:true
? Consultez la page de documentation de jQuery UI Sortable.
Vos éléments sont-ils display: block
? Les éléments en ligne peuvent empêcher l’espace réservé de conserver la hauteur correctement. Par exemple. ce jsFiddle semble avoir un problème similaire à celui que vous avez décrit. Ajouter display: block
à la classe .portlet
corrige.
Dans mon cas, j'ai trouvé une solution similaire à celle de JP Hellemons , dans laquelle je force la taille de l'espace réservé (avec ! Important ) à la personnalisation, ainsi que la visibilité de l'arrière-plan pour voir les modifications pour moi-même (vous pouvez aussi styler votre espace réservé de la manière que vous voulez ).
Cela fonctionne aussi avec 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