jQuery пытается добавить единицу к значению на каждом шаге анимации. Таким образом, вместо 99
это будет 99px
, что, конечно, не является действительным zIndex
значением.
Не представляется возможным установить единицу измерения, используемую jQuery, просто в пустую строку - она либо возьмет единицу измерения, которую вы включили в значение (например, 20%
- процентная единица), либо будет использовать px
.
К счастью, вы можете взломать animate()
, чтобы заставить это работать:
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
});
Подробнее о ~~
см. this .