11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
je voudrais via javascript pouvoir modifier la position du background d'un élément sur l'axe X. Je ne veux pas directement définir la valeur de cette propriété, je veux la calculer à partir de la valeur de base, je vous explique ça en code générique:
function backgroundposition(elementid) {
	var element = document.getElementById(elementid);
	var currentvalue = element.style.BackgroundPositionX;
	element.style.BackgroundPositionX = currentvalue+700;
}
Bah voilà, je sais pas trop comment faire... Smiley sweatdrop
Merci de votre aide.
Salut,
Plusieurs possibilités:
Si tu a défini ton background position en JavaScript comme ceci:
var element = document.getElementById(elementid);
element.style.backgroundPositionX = 'une valeur de départ';

, tu peux récupérer la valeur comme ceci:
var positionX = element.style.backgroundPositionX;

Pour modifier :
element.style.backgroundPositionX = parseInt(positionX,10) + 700+'px';

parseInt() permet de transformer en chiffre et d'enlever 'px'.

Sinon si tu l'as défini comme ceci:
var element = document.getElementById(elementid);
element.style.backgroundPosition = 'une valeur de départ X, une valeur de départ Y';

, tu peux récupérer la valeur comme ceci:
var positionX = element.style.backgroundPosition;

La tu as les deux valeurs et tu fais un traitement pour ne récupérer que la première valeur.
Par exemple avec split(' ') => Le séparateur est l'espace entre les deux valeurs.
Donne un tableaux avec les valeurs de chaque coté du séparateur:
tab[0] => Valeur en X
tab[1] => Valeur en Y
Pour modifier :
element.style.backgroundPositionX = parseInt(tab[0],10) + 700+'px';



Sinon si tu l'as défini dans la feuille de style css :
Il faut utiliser getComputedStyle():
 getComputedStyle(element, null).backgroundPosition

De la tu utilise split() pour récupérer la valeur X.
Aprés tu peux changer la valuer comme ceci:
element.style.backgroundPositionX = parseInt(tab[0],10)+ 700+'px';

style est prioritaire sur la feuille css.

++++