2010-06-26 45 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