Alors voila c assez simple a expliquer (mais pas du tout à résoudre...).

CE PROBLEME N'APPARAIT QUE SOUS LE NAVIGATEUR OPERA !

Voila je bosse pour une boite qui me demande de faire un menu qui reste toujours en pied de page et qui marche partout (ie, ff, opera...).

Voici un lien vers ma page ... Page de test du menu (EDIT ceci est la nouvelle version qui ne bug plus...). Vous pourrez voir un alert qui sert à rien... Enfin si !

J'ai une partie de mon code javascript (car le menu est fait en js) qui ressemble a cela ... Ce code me permet de donner un taille a mon conteneur de div en fonction de la taille des div contenu a l'intérieur (vous suivez?). SI ce code marche pas... ben mon menu n'est pas visible (sous Opera)
var heightTotal = 0;
for( var i=0; i < lignes.length; i++ ) {
	heightTotal += parseInt(getStyle(lignes[ i][0],'height'));
}
alert('fin '+heightTotal);
document.getElementById('spacemenu').style.height = heightTotal+'px';


Tou marche très bien (enfin sous IE il y a encore des problèmes de css mais bon ça c'est autre chose... Smiley smile ) sauf sous Opera ! Car au lieu de me sortir une heightTotal = à 170 comme sous ie et ff, opera me sort mon initialisation (donc 0).

La le truc MEGA BIZARRE -> Lorsque que je rajoute un pauvre alert(); (Celui qui sert à rien) ... Cela marche aussi sous Opera ! Donc Smiley biggol je cracke là ! J'peux pas me permettre de me trimballer un alert();...

Code pour que ca marche...
var heightTotal = 0;
alert();
for( var i=0; i < lignes.length; i++ ) {
	heightTotal += parseInt(getStyle(lignes[ i][0],'height'));
}
alert('fin '+heightTotal);
document.getElementById('spacemenu').style.height = heightTotal+'px';


Une idée ?? Smiley decu
Modifié par MoOx (17 Jul 2006 - 20:11)
Bonsoir,

no comment sur le responsable de projet.

Oublie le script pour les navigateurs implémentant position:fixed : Safari, Opera et FF, et fais-le uniquement en CSS pour eux. Ce sera déjà ça de simple, et au moins, ça fera 3 navigateurs chez qui ça ne sautillera pas pour se placer au dernier moment en bas de l'écran (parce que là, avec le script, c'est assez exaspérant, le menu qui galère laborieusement à chaque scroll).

Via les commentaires conditionnels, cache cette partie de la CSS à IE, et donne-lui ton script ou un des nombreux qui donnent ce résultat chez lui.

Inutile de scripter pour rien, sauf à tomber dans ce genre de problèmes.
Modifié par Laurent Denis (15 Jul 2006 - 19:28)
Merci a toi.

Je ne connaissais pas position: fixed. J'ai essayé ça marche. Mais des fois (un peu trop souvent) mon menu disparait sans raison (lors d'un rezise de la fenetre) alors que j'ai laissé ceci
displayMenu();
//window.onscroll = displayMenu;
window.onresize = displayMenu;


Ce morceau de code est appellé lors du chargement du menu (dans mon cas, au chargement de la page).
Le problème c'est que si j'enlève le menu 'onrezise', quand on rapetisse (ca se dit Smiley confus ??) la fenêtre verticalement, ben mon menu on le voit plus !! Smiley eek

Je crois que je vais devoir laissé mon usine a gaz (j'ai réussi à contourner mon problème d'origine donc...)
Puis le menu, c'est pas moi qui l'utilise Smiley lol donc le vieu sacadage au scroll... j'men balance Smiley smile
Voila je n'avais plus qu'une chose à faire pour mon menu, calculer la margin-bottom du body pour que mon menu ne recouvre pas la fin de la page (car j'avais oublier de le dire, mais ce menu change souvent donc je calcule tous cela en directe live selon le contenu du menu).
Toujours sous Opera, j'ai rerencontré ce satané bug ! Si je n'ai pas un alert(); avant un bou de code, ben mon code est... inactif comme inexistant !
var tmp = parseInt(parseInt(getStyle('body','margin-bottom'))+parseInt(getStyle('spacemenu','height')));
		document.body.style.margin = getStyle('body','margin-top')+' '+getStyle('body','margin-left')+' '+tmp+'px '+getStyle('body','margin-right');

En faite c'est au niveau de la première ligne que cela foire. Si je met un alert(); devant ... ben ca marche... Smiley sweatdrop
J'ai recherché d'ou celà pouvait venir. Le seul truc que j'ai trouvé c'est que cela pourrait venir d'un fonction que j'utilise :
/*
Fonction permettant de récupérer le style des css avec n'importe quel navigateur
c'est à dire le contenu de n'importe quel attribut css déclaré
car lorsqu'un attribut de style n'est pas déclaré dans un fichier html lui même,
l'accès par par "element.style.xxxxx" ne fonctionne pas.

Compatibilité assuré : IE 6, Firefox 1.5 et Opera 9

*/

function getStyle(el,styleProp) {
	var x = window.document.getElementById(el);
	
	// Mozilla , Opera ...
	if (window.getComputedStyle) {
		var y = window.getComputedStyle(x,null).getPropertyValue(styleProp);
	}
	// IExplorer 6
	else if (x.currentStyle) {
		if (styleProp!='clip') {
			// clear '-' and  UpperCase  first next letters : background-color => backgroundColor
			while (styleProp.indexOf('-') != -1) {
				var letter = styleProp.charAt(styleProp.indexOf('-')+1);
				styleProp = styleProp.replace(/-\S{1}/,letter.toUpperCase());
			}
			var y = eval('x.currentStyle.' + styleProp);
		}
		else {
			// Return clip style  in mozilla format : rect(top,right,bottom,left)
			ctop=x.currentStyle.clipTop;
			cright=x.currentStyle.clipRight;
			cbottom=x.currentStyle.clipBottom;
			cleft=x.currentStyle.clipLeft;
			y='rect('+ctop+','+cright+','+cbottom+','+cleft+')';
		}
	}
	return y;
}

Cette fonction vient de ce forum ! Smiley smile
Je ne sais pas si ça peut venir de la m'enfin... Smiley confus J'comprend pas... Opera qu t'arrive t'il ?? Smiley confused
Bonjour,

Je refais un p'tit coucou dans le forum et j'en profite.
Hmm je pense que tu aurais plus de capacité à lire les quelques liens suivants :

1. La FAQ ;
2. Le OpenWeb ;
3. L'astuce de Nanoum ;

En espérant avoir pu t'aider !

G.
Je vous remercie a tous les deux. OpenWeb est sympa.... J'ai un projet à faire et je crois que je vais me servir de ce design Smiley langue .

Très de plaisanterie... Au final j'ai arrangé MON problème en le contournant... ça m'empêche pas de trouver ce bug de Opera 9 plustot bizarre et qui m'est arrivé plusieur fois depuis... Smiley sweatdrop

Pour cette raison je ne met pas RESOLU... Smiley confus
Modifié par MoOx (17 Jul 2006 - 20:13)