11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour, j'ai deux fonctions javascript qui permettent de déplacer le background d'un élément 700px vers la gauche ou 700px vers la droite, elles s'exécutent parfaitement sous Webkit mais ne sont pas interprétées par Firefox et Opera:
function rightslide(elementid) {
	var btn1 = document.getElementById("slider" + elementid);
	var positionX = btn1.style.backgroundPositionX;
	var positionX = parseInt(positionX,10);
	btn1.style.backgroundPositionX = positionX + -700+'px';
}
function leftslide(elementid) {
	var btn1 = document.getElementById("slider" + elementid);
	var positionX = btn1.style.backgroundPositionX;
	var positionX = parseInt(positionX,10);
	btn1.style.backgroundPositionX = positionX + 700+'px';
}

Merci de votre aide Smiley smile
Le problème provient de BackgroundPositionX qui n'est pas reconnu par FF, en effet, il ne sait interpréter que BackgroundPosition. Je pourrais m'en sortir avec ça mais; impossible de récupérer sa valeur !
Je peux faire:
element.style.BackgroundPosition='100px 100px';

Mais je ne peux pas faire:
var position = element.style.BackgroundPosition;


Smiley bawling
Bon, bah, voilà quoi... Sujet inutile Smiley confused : j'ai trouvé.

Pour comprendre, il faut que je poste l'intégralité de mon code, en effet, j'ai deux autres fonctions qui interviennent avant et qui définissent ce BackgroundPosition, comme elles définissaient au départ BackgroundPositionX, elles lui attribuaient la valeur "0", sauf que pour BackgroundPosition, ce doit être "0 0". Donc voilà, c'est corrigé:
function infopen(elementid) {
	var btn1 = document.getElementById("info" + elementid);
	btn1.className= "info target";
	var btn2 = document.getElementById("gradient");
	btn2.className= "black";
	btn2.onclick=function() {
	infoclose(elementid);
}
	var btn3 = document.getElementById("slider" + elementid);
	btn3.style.backgroundPosition = "0 0";
}
function infoclose(elementid) {
	var btn1 = document.getElementById("info" + elementid);
	btn1.className= "info";
	var btn2 = document.getElementById("gradient");
	btn2.className= "white";
	var btn3 = document.getElementById("slider" + elementid);
	btn3.style.backgroundPosition = "0 0";
}
function rightslide(elementid) {
	var btn1 = document.getElementById("slider" + elementid);
	var position = btn1.style.backgroundPosition;
	var position = parseInt(position,10);
	btn1.style.backgroundPosition = position + -700+'px 0';
}
function leftslide(elementid) {
	var btn1 = document.getElementById("slider" + elementid);
	var position = btn1.style.backgroundPosition;
	var position = parseInt(position,10);
	btn1.style.backgroundPosition = position + 700+'px 0';
}

Modifié par juliendargelos (17 Feb 2013 - 14:02)