2012-04-04 6 views
5

Tengo un puñado de elementos que quiero configurar, lo que sea que quiera hacer el cálculo sobre la marcha que ajustar manualmente la posición cada vez para cada vuelco ya que con el tiempo habrá muchas. Actualmente estoy usando un sprite, que a medida que pasa el tiempo me aplico más a él. Siempre al lado del otro, y siempre con 10px de relleno para el aspecto de cada imagen.javascript o jquery obtener las propiedades de posición de fondo de un elemento dado y luego +/- a eso dinámicamente

Así que sé si mi posición actual es siempre 0 100 por ejemplo y quiero obtener la reinversión para eso, entonces sé que va a ser 50 100 ¿Cómo puedo obtener simplemente un método de tomar los 2 valores? de eso, pero solo se agrega a uno de ellos

Respuesta

16

Debe tomar la posición de fondo y dividirla en dos valores, realice el cálculo, que restablece los valores como una cadena.

Por ejemplo

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

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

A continuación, deberá convertirlos en números enteros: (Suponga que está haciendo lo mismo con Mypos [1])

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

Luego se hacen las cuentas y asignar de nuevo:

myPos[0] = myPos[0] + 100 

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

Sólo un recordatorio rápido para recordar la raíz ... –

+0

Buena sugerencia, pero no creo que jQuery va t o informar cualquier valor que comience con cero, que no sea cero en sí mismo. –

+0

Un punto justo, de verdad; es solo un deseo habitual, posiblemente obsesivo, de no olvidar ... aunque tal vez no sea necesario en este caso. –

Cuestiones relacionadas