2010-06-26 70 views
10

我试图jQuery的

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

到具有1000的z索引元件,但它仍然高于其它元件?

(如果我使用Firebug将其更改为-1000那么这将是低于其他元素)

+0

你试图去做什么效果?动画z-索引不会有太大的好处。即使z-索引逐渐降低,您只会注意到高/低值切换点处的(非动画)更改,并且它变得比其他元素更少。 – munch 2010-06-26 06:46:47

+3

@munch:我可以看到这将如何工作。考虑一堆卡片,一张卡片在堆叠中徘徊。请注意,只有当z元素位于元素起始位置和-1000之间的范围内时,它才会起作用... – 2010-06-26 07:06:23

+0

是否有任何文档说animate()不适用于z-指数? – 2010-06-26 07:24:58

回答

37

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

+2

得给这个+1只是为了关于~~的信息! – 2010-06-26 08:07:37

+0

是否有最低的jQuery版本?我只是试图用jQuery 1.2.6来做到这一点,不幸的是它根本没有做任何事情。我尝试添加一个完整的函数,甚至没有被动画调用。 – 2011-01-18 00:26:00

+0

我有和马修一样的问题。我使用jQuery 1.5.1,我可以看到图像切换,但没有动画。如果有人看到这个评论,并知道答案...请与世界分享 – peterK 2011-09-23 17:47:36

-2

不能动画Z-索引。 您可以使用.css进行设置。

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

+0

我以为animate()应该能够在CSS内动画任何东西(合理的)? (具有标量值的东西) – 2010-06-26 07:18:59

+0

嗯,以及我还没有看到3D浏览器! – redsquare 2010-06-26 09:07:04

+2

animating z indexes对于像这样的东西非常有用:http://jsfiddle.net/ejvsY/122/ – 2011-04-23 15:52:09