jQuery intentos de añadir una unidad para el valor en cada paso de la animación. Entonces, en lugar de 99
será 99px
que, por supuesto, no es un valor zIndex
válido.
No parece posible establecer la unidad utilizada por jQuery a una cadena simple en blanco - que va a tomar ya sea la unidad que incluya en el valor (por ejemplo 20%
- unidad por ciento) o que utilizará px
.
Afortunadamente, se puede hackear animate()
para hacer este trabajo:
var div = $('#divOne');
$({
z: ~~div.css('zIndex')
// ~~ to get an integer, even from non-numerical values like "auto"
}).animate({
z: -1000
}, {
step: function() {
div.css('zIndex', ~~this.z);
},
duration: 2000
});
Para obtener más información sobre ~~
ver this.
¿Qué efecto estás tratando de conseguir? Animar el índice z no servirá de mucho. Incluso si el índice z se redujera progresivamente, solo notaría un cambio (no animado) en el punto donde los valores alto/bajo cambiaron y se volvió menos que los otros elementos. – munch
@munch: Puedo ver cómo funcionaría esto. Considera una pila de cartas y una carta que se desliza por la pila. Eso sí, solo funcionará si hay un montón de tarjetas con índices z en el rango entre el comienzo de ese elemento y -1000 ... –
¿Hay algún documento que diga que animate() no funcionará para z- ¿índice? –