jQuery 的 $('#divOne').animate({zIndex: -1000}, 2000) 不起作用?

发布于 2024-09-07 07:00:35 字数 192 浏览 4 评论 0原文

我尝试了 jQuery 的

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

z-index 为 1000 的元素,但它仍然高于其他元素?

(如果我使用 firebug 将其更改为 -1000 那么它将位于其他元素下方)

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 other elements?

(If I use firebug to change it to -1000 then it will be below other elements)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

昨迟人 2024-09-14 07:00:35

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

有关 ~~ 的更多信息,请参阅 这个

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.

请远离我 2024-09-14 07:00:35

您无法对 zindex 进行动画处理。 您可以使用 .css 进行设置。

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文