2012-06-13 12 views
6

penso che la mia ultima domanda travolto tutti, quindi mi semplificarejquery cambiamento sfondo un solo asse

Sto tentando di cambiare il background-position dell'unico asse x. Per impostazione predefinita, se un solo valore è definito, le altre impostazioni predefinite per 50%, quindi questa funzione:

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

rendimenti background-position: 0 50%;

Come posso modificare la funzione per cambiare l'asse x ma lasciare l'asse y invariato?

modificato -> questo è per uno sprite con 4 colonne e 4 righe in modo che l'asse y rimanga dinamico. sito di lavoro qui: http://www.avalonbyeaw.com fare clic su "finiture". abbiamo ottenuto lavorando con qualche pazzo scripting complicato sul sito dal vivo, ma lascio questo qui comunque perché mi piace ancora molto per trovare una soluzione a questo problema

risposta

2

Aggiungere i 2 valori per background-position (come è si aspetta). Salva anche la posizione corrente in una variabile che rende più semplice.

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 ... ho sostituito il codice ma non sembra funzionare. la chiamata html dovrebbe ancora essere onClick = "colorChangePiano()"? –

+0

Hai sicuramente bisogno di chiamare questa funzione quando ne hai bisogno per essere eseguita !! Inoltre, non sono sicuro su quali valori devono essere inseriti, quindi cambia in% se non desideri allineare i pixel. – TheHippo

+0

lol ovviamente! ma è ancora la chiamata corretta, giusto? volevo solo assicurarmi che non funzionasse a causa del codice HTML –

5

Ecco come lo farei.

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

perdonami se questa è una domanda stupida, ma io sono un bambino javascript. come lo chiamo in html? –

+2

Puoi effettivamente inserire una funzione lì? Non lo sapevo fino ad ora. Grazie. –

+0

@alex mi sto ancora chiedendo come lo chiameresti. non vedo un nome di funzione da includere nel tag '' –

Problemi correlati