2012-06-13 5 views
6

creo que mi última pregunta abrumado por lo que todo el mundo SimplificaréjQuery cambiar el fondo de un solo eje

Estoy intentando cambiar el fondo de la posición del único eje x. Por defecto, si sólo se define un valor, los otros valores predeterminados a 50%, por lo que esta función:

function colorChangePiano() { 
    var bp = $("background-position").css; 
    $("#target").css('background-position', (bp == -1131) ? '-377' : '0'); 
} 

vuelve background-position: 0 50%;

¿Cómo puedo modificar la función para cambiar el eje X pero no modificar el eje y?

edited -> esto es para un sprite con 4 columnas y 4 filas para que el eje y permanezca dinámico. sitio de trabajo aquí: http://www.avalonbyeaw.com haga clic en "termina". lo conseguimos trabajando con algunas secuencias de comandos complicada loco en el sitio en vivo, pero voy a dejar esto aquí de todos modos, porque yo todavía realmente como para encontrar una solución a este problema

Respuesta

2

Añadir los 2 valores a background-position (como se espera). Guarde también la posición actual en una variable que hace esto más fácil.

var pos = -377; 
var colorChangePiano = function() { 
    if (pos == -377) { 
    pos = -1131 
    } 
    else { 
    pos = -377 
    } 
    $('#target').css({ 
    'backround-position': pos + 'px 0px' // will result in "Xpx 0px" 
    }); 
} 
+0

hmmm ... reemplacé el código pero parece que no funciona. ¿Debería la llamada html seguir siendo onClick = "colorChangePiano()"? –

+0

¡Definitivamente debe llamar a esta función cuando necesite que se ejecute! Tampoco estoy seguro de qué valores se deben insertar, así que cambie a% si no desea alinearlos por píxeles. – TheHippo

+0

lol por supuesto! pero esa sigue siendo la llamada correcta, ¿verdad? solo quería asegurarme de que no funcionaba debido al html –

5

Así es como yo lo haría.

$('#target').css('background-position', function(i, backgroundPosition) { 
    return backgroundPosition.replace(/\d+px/, '60px'); 
}); 
+0

perdóneme si esta es una pregunta estúpida, pero soy un bebé javascript. ¿Cómo puedo llamar esto en html? –

+2

¿Puedes poner una función ahí? No lo sabía hasta ahora. Gracias. –

+0

@alex todavía me pregunto cómo llamarías esto. no veo el nombre de una función que se incluya en la etiqueta '' –

Cuestiones relacionadas