Estoy tratando de agregar una fila a una tabla y hacer que esa fila se deslice a la vista, sin embargo, la función de deslizamiento parece agregar una pantalla: estilo de bloque a la fila de la tabla que desordena el diseño.
¿Alguna idea de cómo solucionar esto?
Aquí está el código:
$.get('/some_url',
{ 'val1': id },
function (data) {
var row = $('#detailed_edit_row');
row.hide();
row.html(data);
row.slideDown(1000);
}
);
fadeIn
yfadeOut
trabajar en filas de la tabla y crear un agradable efecto visual alternativo (probado solo en Firefox)Respuestas:
Las animaciones no son compatibles con las filas de la tabla.
De "Learning jQuery" de Chaffer y Swedberg
Puede envolver sus contenidos de td en un div y usar el slideDown en eso. Debe decidir si la animación vale la pena el marcado adicional.
fuente
$('tr').find('td').animate({padding: '0px'}, {duration: 200});
Simplemente envuelvo el tr dinámicamente y luego lo elimino una vez que se haya completado slideUp / slideDown. Es una sobrecarga bastante pequeña agregando y quitando una o un par de etiquetas y luego quitándolas una vez que se completa la animación, no veo ningún retraso visible en absoluto.
SlideUp :
Bajar deslizándose:
Tengo que rendir homenaje a fletchzone.com cuando tomé su complemento y lo despojé de nuevo a lo anterior, saludos compañero.
fuente
Aquí hay un complemento que escribí para esto, toma un poco de la implementación de Fletch, pero el mío se usa únicamente para deslizar una fila hacia arriba o hacia abajo (sin insertar filas).
Uso Básico:
Pase las opciones de diapositiva como argumentos individuales:
Básicamente, para la animación de deslizamiento hacia abajo, el complemento envuelve el contenido de las celdas en los DIV, los anima, luego los elimina y viceversa para el deslizamiento hacia arriba (con algunos pasos adicionales para deshacerse del relleno de la celda). También devuelve el objeto al que lo llamó, por lo que puede encadenar métodos de esta manera:
Espero que esto ayude a alguien.
fuente
Puede intentar envolver el contenido de la fila en a
<span>
y hacer que su selector sea$('#detailed_edit_row span');
un poco hack, pero acabo de probarlo y funciona. También probé latable-row
sugerencia anterior y no pareció funcionar.Actualización : He estado jugando con este problema, y según todas las indicaciones, jQuery necesita que el objeto que realiza slideDown sea un elemento de bloque. Entonces, no hay dados. Pude conjurar una tabla donde usé slideDown en una celda y no afectó en absoluto el diseño, por lo que no estoy seguro de cómo está configurada la suya. Creo que su única solución es refactorizar la tabla de tal manera que esté bien que esa celda sea un bloque, o simplemente
.show();
la maldita cosa. Buena suerte.fuente
<td><div style="display:block">contents</div></td>
Seleccione el contenido de la fila así:
.contents () - Obtiene los elementos secundarios de cada elemento en el conjunto de elementos coincidentes, incluidos los nodos de texto y comentario.
fuente
$('tr > td').contents().slideDown()
. Asegúrese de que todo el contenido dentro de la columna esté envuelto en una etiqueta, es decir,<td>Some text</td>
no funcionará. Esta es la solución más simple.Estoy un poco atrasado en responder esto, pero encontré una manera de hacerlo :)
Acabo de poner un elemento div dentro de las etiquetas de datos de la tabla. cuando se establece visible, a medida que el div se expande, toda la fila baja. luego dígale que se desvanezca (luego agote el tiempo de espera para que vea el efecto) antes de ocultar la fila de la tabla nuevamente :)
¡Espero que esto ayude a alguien!
fuente
Neded una tabla con filas ocultas que se deslizan dentro y fuera de la vista al hacer clic en la fila.
Mostrar fragmento de código
fuente
Tener una fila de tabla con tabla anidada:
Para deslizar hacia abajo la fila:
Nota: la fila y su contenido (aquí está
"table"
) ambos deben estar ocultos antes de que comience la animación.Para deslizar hacia arriba la fila:
El segundo parámetro (
function()
) es una devolución de llamada.¡¡Sencillo!!
Tenga en cuenta que también hay varias opciones que se pueden agregar como parámetros de las funciones de desplazamiento hacia arriba / abajo (las más comunes son las duraciones de
'slow'
y'fast'
).fuente
He solucionado esto usando los elementos td en la fila:
Animar la fila en sí causa un comportamiento extraño, principalmente problemas de animación asíncrona.
Para el código anterior, estoy resaltando una fila que se arrastra y suelta en la tabla para resaltar que la actualización se realizó correctamente. Espero que esto ayude a alguien.
fuente
effect is not a function
Utilicé las ideas proporcionadas aquí y enfrenté algunos problemas. Los arreglé todos y tengo una frase sencilla que me gustaría compartir.
Utiliza css en el elemento td. Reduce la altura a 0px. De esa manera, solo importa la altura del contenido del envoltorio div recién creado dentro de cada elemento td.
El slideUp está en lento. Si lo haces aún más lento, podrías darte cuenta de algún problema técnico. Un pequeño salto al principio. Esto se debe a la configuración css mencionada. Pero sin esos ajustes, la fila no disminuiría en altura. Solo su contenido lo haría.
Al final se elimina el elemento tr.
Toda la línea solo contiene JQuery y no tiene Javascript nativo.
Espero eso ayude.
Aquí hay un código de ejemplo:
fuente
Quiero deslizar todo el cuerpo y he manejado este problema combinando efectos de fundido y deslizamiento.
Lo hice en 3 etapas (los pasos 2 y 3 se reemplazan en caso de que desee deslizarse hacia abajo o hacia arriba)
Ejemplo de slideUp:
fuente
Tuve problemas con todas las otras soluciones ofrecidas, pero terminé haciendo esta cosa simple que es suave como la mantequilla.
Configure su HTML así:
Luego configure su javascript así:
Básicamente, haga la fila "invisible" 0px de alto, con un div dentro.
Use la animación en el div (no en la fila) y luego configure la altura de la fila en 1px.
Para ocultar la fila nuevamente, use la animación opuesta en el div y establezca la altura de la fila nuevamente en 0px.
fuente
Me gustó el complemento que Vinny ha escrito y he estado usando. Pero en el caso de las tablas dentro de la fila deslizante (tr / td), las filas de la tabla anidada siempre están ocultas incluso después de deslizarse hacia arriba. Así que hice un truco rápido y simple en el complemento para no ocultar las filas de la tabla anidada. Solo cambia la siguiente línea
a
que encuentra solo tds inmediatos no anidados. Espero que esto ayude a alguien que usa el complemento y tenga tablas anidadas.
fuente
Me gustaría agregar un comentario a la publicación de # Vinny, pero no tengo el representante, así que tengo que publicar una respuesta ...
Encontró un error con su complemento: cuando simplemente pasa un objeto con argumentos, se sobrescriben si no se pasan otros argumentos. Se resuelve fácilmente cambiando el orden en que se procesan los argumentos, código a continuación. También agregué una opción para destruir la fila después del cierre (¡solo porque la necesitaba!): $ ('# Row_id'). SlideRow ('arriba', verdadero); // destruye la fila
fuente
Si necesita deslizar y atenuar una fila de la tabla al mismo tiempo, intente usar estos:
fuente
puedes usar estos métodos como:
fuente
Puedo hacerlo si configura los td en la fila para que no muestren ninguno al mismo tiempo que comienza a animar la altura en la fila
fuente
Este código funciona!
fuente
http://jsfiddle.net/PvwfK/136/
});
fuente
El enchufe ofrecido por Vinny está muy cerca, pero encontré y solucioné un par de pequeños problemas.
Para celdas de tabla con mucho contenido (como una tabla anidada con muchas filas), llamando a slideRow ('arriba'), independientemente del valor de slideSpeed proporcionado, colapsaría la vista de la fila tan pronto como se completara la animación de relleno . Lo arreglé para que la animación de relleno no se active hasta que se complete el método slideUp () en el ajuste.
fuente
Solución rápida / fácil:
Utilice JQuery .toggle () para mostrar / ocultar las filas al hacer clic en Fila o Ancla.
Será necesario escribir una función para identificar las filas que le gustaría ocultar, pero alternar crea la funcionalidad que está buscando.
fuente