2012-04-04 9 views
5

Olmasını sağladığım bir kaç elemanım var, roll over'ı ayarlamak istiyorum. Her rulo için her seferinde pozisyonu manuel olarak ayarlamaktan çok zaman geçecektir. Şu anda bir sprite kullanıyorum, zaman gelince daha fazla ekleyeceğim. Her zaman yan yana ve her görüntü için her zaman 10px dolgu.javascript veya jquery belirli bir elemanın arka plan konumu özelliklerini ve sonra o dinamik olarak +/-

Bu yüzden, örneğin, defualt konumumun her zaman 0 100 olup olmadığını biliyorum ve bunun için roll over'ı almak istiyorum, o zaman bunun 50 olacağını biliyorum. 100 2 değerini almak için bir yönteme sahip olmaktan nasıl yararlanabilirim bununla yalnızca bunlardan birine ekleme

cevap

16

Arka plan konumunu yakalamanız ve iki değere ayırmanız gerekir, bu değerleri gerçekleştirin, değerleri bir dizge olarak yeniden ayarlayınız. Daha sonra tamsayılar bunları açmak gerekir

myPos = $('.selection').css("background-position").split(" ") 

myPos[0] <-- will contain the X-value, "50px" 
myPos[1] <-- will contain the Y-value, "100px" 

Örneğin

: Sonra

myPos[0] = parseInt(myPos[0].replace("px","")) 

Hesapladığınızda ([1] MyPOS ile aynı yapıyoruz varsayalım) ve atamak onların geri: hatırlatmak isteriz

myPos[0] = myPos[0] + 100 

$('.selection').css("background-position", myPos[0]+'px ' + myPos[1] + 'px') 
+0

radix ... –

+0

İyi öneri hatırlamak ama jQuery t gidiyor sanmıyorum o Sıfırdan başka sıfır ile başlayan değerleri sıfırlar. –

+0

Adil bir nokta; Bu sadece, alışılmadık, muhtemelen takıntılı, unutmamak için bir dürtü ... belki de bu durumda gerekli değildir. –

İlgili konular