11540 sujets

JavaScript, DOM et API Web HTML5

Salut à tous,
J'ai un problème et après avoir écrit la condition sous différentes formes:
avec des if else if.... des ternaires, rajout de condition et etc
J'arrive à un fonctionnellement sous Firefox, safari et google.
Pour Ie et Opera, il rentre dans la condition suivante :
cible.currentStyle && cible.currentStyle !=='none'
alors que la valeur est égale à none !!!! Smiley sweatdrop
La fonction permet de déterminer la valeur de la propriété (passer en paramètre) pour l’élément cible (passer en paramètre).
Je regarde d'abord dans style sinon dans la feuille css sinon 0px par défault.

Voici le code :
value = function(property,cible){
	switch(property){
		case 'width': return {t : cible.offsetWidth, i : 'W'} ;
		case 'height': return {t : cible.offsetheight, i : 'H'};
		case 'max-width':
 var val = '0px';
if(cible.style.maxWidth){
alert('cible.style');
val = cible.style.maxWidth;
}
else if(cible.currentStyle && cible.currentStyle !=='none'){
val = cible.currentStyle.maxWidth;alert('currentStyle'+' '+val); 
}
else if(getComputedStyle(cible,null).getPropertyValue('max-width') && getComputedStyle(cible,null).getPropertyValue('max-width') !=='none'){
alert('getComputedStyle');
val = getComputedStyle(cible,null).getPropertyValue('max-width');
};
return {t : val, i : 'W'} ;
		case 'top': return {t : myFonctions.getPos(cible).t, i : 'H'};
		case 'bottom': return {t : myFonctions.getPos(cible).b, i : 'H'};
		case 'left': return {t : myFonctions.getPos(cible).l, i : 'W'};
		case 'right': return {t : myFonctions.getPos(cible).r, i : 'W'};
	}
};
var tata = value('max-width',document.getElementById('cible3'));
alert(tata.t);

j'ai aussi essayé cela :
value = function(property,cible){
	switch(property){
		case 'width': return {t : cible.offsetWidth, i : 'W'} ;
		case 'height': return {t : cible.offsetheight, i : 'H'};
		case 'max-width': var val = cible.style.maxWidth || cible.currentStyle.maxWidth || getComputedStyle(cible,null).getPropertyValue('max-width') || 0;return {t : val, i : 'W'} ;
		case 'max-height': return {t : cible.offsetWidth, i : 'W'} ;
		case 'top': return {t : myFonctions.getPos(cible).t, i : 'H'};
		case 'bottom': return {t : myFonctions.getPos(cible).b, i : 'H'};
		case 'left': return {t : myFonctions.getPos(cible).l, i : 'W'};
		case 'right': return {t : myFonctions.getPos(cible).r, i : 'W'};
	}
};

Ne marche pas non plus....

Merci de m'avoir lu et dans l'attente de vos lumiére. Smiley biggrin
Modifié par renard13 (20 Feb 2013 - 12:47)
Ok c'est bon.
En faite j'ai fais une erreur toute bête:
else if(cible.currentStyle && cible.currentStyle !=='none'){
val = cible.currentStyle.maxWidth;alert('currentStyle'+' '+val); 
}
// Alors que je devais faire  cible.currentStyle.maxWidth !=='none'
else if(cible.currentStyle && cible.currentStyle.maxWidth !=='none'){
val = cible.currentStyle.maxWidth;alert('currentStyle'+' '+val); 
}


++++++