2010-06-26 10 views
10

I 1000 z-indeksine sahip elemana jQuery

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

çalıştı, ancak diğer elemanlar üzerinde hala?

+0

Ne tür bir etki yapmaya çalışıyorsunuz? Z-endeksini hareketlendirmek pek iyi olmaz. Z-endeksi kademeli olarak azaltılmış olsa bile, sadece yüksek/düşük değerlerin değiştiği noktada (animasyonlu olmayan) bir değişikliği fark edersiniz ve diğer elemanlardan daha az olur. – munch

+3

@munch: Bunun nasıl olacağını görebiliyorum. Bir kart yığını ve yığın boyunca aşağı doğru akan bir kart düşünün. Dikkat et, sadece o elementin başladığı yer arasında z-endeksli bir grup kart varsa çalışacak ve -1000 ... –

+0

animate() 'in z için çalışmamasını söyleyen herhangi bir belge var mı? indeks? –

cevap

37

jQuery animasyon her adım değerine bir birim eklemek için çalışır. Yani, 99 yerine 99px olacaktır, tabi ki geçerli bir zIndex değeri değil.

jQuery tarafından basitçe boş bir dize kullanılan birimini ayarlamak mümkün görünmüyor - bu değer dahil üniteyi alacağım ya (örneğin 20% - yüzde birimi) ya da px kullanacaktır.

Neyse ki, bu işi yapmak için animate() kesmek olabilir:

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

fazla bilgi için ~~this bkz yaklaşık.

+2

, bunu ~~ hakkında bilgi için bir +1 vermeli! –

+0

Bunun için en az jQuery sürümü var mı? Ben sadece jQuery 1.2.6 ile bunu yapmaya çalıştı ve ne yazık ki hiç bir şey yapmıyor. Tam bir işlev eklemeyi denedim ve hatta bu animasyon tarafından çağrılmadı. –

+0

Matta ile aynı sorum var. Jquery 1.5.1 kullanıyorum ve görüntü değiştirmeyi ancak animasyon olmadan görebiliyorum.Bu yorumu herkes görüp cevabı biliyorsa ... lütfen dünyayla paylaşın – peterK

-2

Sen zIndex can veremezler (ı -1000 olarak değiştirmek için kundakçı kullanırsanız o zaman diğer elementlerin altında olacaktır). .css'u kullanarak ayarlayabilirsiniz.

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

+0

Ben animate() CSS içindeki herhangi bir şeyi (makul) canlandırabileceğini düşünmüştüm? (bir skaler değeri olan bir şey) –

+0

hmm, ben henüz bir 3d tarayıcı görmüyorum! – redsquare

+2

animating z endeksleri şunun gibi şeyler için oldukça yararlıdır: http://jsfiddle.net/ejvsY/122/ –