jQuery $ ('# divOne'). animate ({zIndex: -1000}, 2000) не работает? - PullRequest
10 голосов
/ 26 июня 2010

Я попробовал jQuery

$('#divOne').animate({zIndex: -1000}, 2000)

для того элемента, у которого z-индекс равен 1000, но он все еще выше других элементов?

(Если я использую firebug, чтобы изменить егодо -1000 тогда будет ниже других элементов)

Ответы [ 2 ]

37 голосов
/ 26 июня 2010

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 .

0 голосов
/ 26 июня 2010

Вы не можете анимировать Zindex. Вы можете установить его, используя .css .

$("#divOne").css('z-index' , '-1000');

...