Por alguna razón, el marcador de posición para mis elementos clasificables es de aproximadamente 10 px. Todos mis elementos clasificables tienen diferentes alturas. ¿Cómo puedo cambiar la altura de cada marcador de posición para que coincida con el elemento que se mueve?
jquery
jquery-ui
jquery-ui-sortable
oshirowanen
fuente
fuente
Respuestas:
Por lo general, resuelvo esto vinculando una devolución de llamada que establece la altura del marcador de posición a la altura del elemento que se ordena para el
start
evento. Es una solución simple que le brinda un control detallado sobre cómo desea que se muestre su marcador de posición.Ver caso de prueba actualizado
fuente
¿Ha intentado configurar la
forcePlaceholderSize:true
propiedad? Lea la página de documentación de jQuery UI Sortable .fuente
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
a.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; }
(así que elimine la altura) ¡Entonces @DarthJDG tiene razón!¿Son tus elementos
display: block
? Los elementos en línea pueden hacer que el marcador de posición no mantenga la altura correctamente. P.ej. este jsFiddle parece tener un problema similar al que describiste. Agregardisplay: block
a la.portlet
clase lo arregla.fuente
En lugar de usar "ui.item.height ()", puede usar "ui.helper [0] .scrollHeight" para obtener un resultado estable cuando también arrastre un elemento desde un contenedor externo.
fuente
Puede establecer un estilo para su marcador de posición como una opción para su ordenable.
Y solo dale un toque a ese estilo. Espero que funcione.
fuente
En mi caso, encontré una solución similar a JP Hellemons , en la que estoy forzando la altura del marcador de posición (con ! Importante ) a personalizado y también estableciendo la visibilidad con el fondo para ver los cambios por mí mismo (también puede diseñar de esta manera su marcador de posición de la forma que desee ).
Esto también funciona con
display: inline-block;
fuente