jQuery's $('#divOne').animate({zIndex: -1000}, 2000) does not work?

后端 未结 2 1879
忘了有多久
忘了有多久 2020-12-29 11:30

I tried jQuery\'s

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

to that element which has a z-index of 1000, but it is still above the othe

相关标签:
2条回答
  • 2020-12-29 12:11

    jQuery attempts to add a unit to the value on each step of the animation. So, instead of 99 it'll be 99px which, of course, isn't a valid zIndex value.

    It doesn't seem possible to set the unit used by jQuery to simply a blank string -- it'll either take the unit you include in the value (e.g. 20% - percent unit) or it will use px.

    Fortunately, you can hack animate() to make this work:

    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
    });
    

    For more info about ~~ see this.

    0 讨论(0)
  • 2020-12-29 12:16

    You cannot animate the zindex. You can set it using .css.

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

    0 讨论(0)
提交回复
热议问题