[javascript] ça marche 1 fois/2 ?? help

bonjour,

je suis en stage, et je doit réaliser le site d'une entreprise, ..
& j'éssai de faire un design sobre & complex à réaliser tout de même ... car il s'adapte instantanément a la taille de l'écran ... en même si on modifie la dimention de la fenêtre lors de la visite, ...

pr l'instant, il y a :
le nom de la boite qui défile (ça s'adapte tjs à la taille de l'écran pr qu'il y ai un petit bout de la premiére & derniére lettre soit caché lors de la remise en position initiale ... ) ça, ça marche ... (suis content !!! )

mais, j'ai un beug avec le titre, ...
il est composé de 2 partie une image avc le nom de l'entreprise & le logo & d'un trait (c'est aussi une image) qui prolonge l'image, ...
& là le truc chaud c'est que l'image avec le logo doit tjs être au milieu, & il doit tjs avoir la même distance de trait de chaque coté, ...
ça à l'aire simple comme ça, .. mais en fait non, car l'ombre qui défile est sur toute la hauteur, dans une autre frame, le logo & le trait sont donc répartie sur 2 frames & ça doit être invisible, ...

j'ai l'aire d'avoir fait qqe chose qui doit être pas mal pr le probléme
car ça marche, ... sauf que ça marche qu'une fois sur 2 ...

à mon avis, ça vien du fait que des info circulent entre les 2 frames, dans les 2 sens, ... mais je vois pas comment faire autrement ...

pour voir ce que ça donne ..
http://www.activetech.fr/active/cadre.php
(il faut peu être actualiser plusieur fois pour voir le script fonctionner normalement, svt il y a un beug ds le coins haut gauche)
vous pouvez aussi redimentionner votre fenêtre ~ en 800*600 on, voit mieu, car il y a en plus du trait, le logo aussi de coupé ...

& voici mes source :
<html>
<head>
<?php 
/**************************************************************************
 * pour modifier les paramettre de l'ombre défilante, aller dans jsBody.php
 * dans ce fichier, il y a aussi la gestion du logo pour le menu
 **************************************************************************/

include('head.php'); // meta tags
include('jsHead.php'); // pr l'ombre defilante
?>

<script language="JavaScript"> 
<!--
/********************* mise à jour taille de la fenêtre **************/
var hMenu;
var lMenu;
function tailleMenu(){
	ie = document.all;
	if (ie){
		hMenu = document.body.clientHeight;	// + document.body.scrollTop;
		lMenu = document.body.clientWidth;	// + document.body.scrollLeft;
	}else{
		hMenu = window.innerHeight;
		lMenu = window.innerWidth;
	}	// en pix
}
///////////////////////////////////////// logo centré //////////////////////////////////

var hTitre=160;
var lTitre=500;
var hLogo=500;
var lLogo=100;
var largLogo2;
var leftLogo2;

function positionLogo2(){
	tailleMenu();
	if(parent.titre.lTitre) { lTitre = parent.titre.lTitre; }
	if(parent.titre.hTitre) { hTitre = parent.titre.hTitre; }
	if(parent.titre.hLogo) { hLogo=parent.titre.hLogo; }
	if(parent.titre.lLogo) { lLogo=parent.titre.lLogo; }
	
	topLogo2 = hTitre-hLogo;
	largLogo2 = (((lMenu+lTitre)*0.90)/((lMenu+lTitre)/lMenu));
	leftLogo2 = ((lMenu+lTitre-lLogo)/2);

//alert("lTitre: "+lTitre+"\nhTitre: "+hTitre+"\nleftLogo "+leftLogo2+"\nlargLogo "+largLogo2);
}

function placeLogoTitre2(){
	positionLogo2();
	window.document.getElementById("tabFondLogo22").style.width =largLogo2;
	window.document.getElementById("Logo2").style.left =leftLogo2+1;
	window.document.getElementById("tabFondLogo21").style.left =lMenu-largLogo2+1;
}



//-->
</script>

</head>
<body>
<?php 
include('jsBody.php'); // tjs pr l'omnre 
?> 

<script language="JavaScript"> 
<!--

///////////////////////////////////////// logo centré //////////////////////////////////

//function iniLogo2(){ // attend 10ms pour avoir toutes les infos de titre
	positionLogo2();
	document.write('<table border=0 cellSpacing=0 cellPadding=0 name="tabFondLogo21" style="position: absolute; top: '+topLogo2+'px; left: '+(lMenu-largLogo2)+'px;">');
	document.write('<tr><td background="img/traitB.gif"><img src="img/espaceur.gif" name="tabFondLogo22" style="height: '+hLogo+'; width: '+largLogo2+'"></td></tr></table>');
	document.write('<img src="img/ActiveTechL.gif" name="Logo2" style="position: absolute; top: '+topLogo2+'px; left: '+leftLogo2+'px; height: '+hLogo+'; width:'+lLogo+';">');
	var logoTMP2 = setInterval('placeLogoTitre2()',100);
//}
//b=setTimeout("iniLogo2()",20);

//-->
</script>

</body>
</html>

je n'ai mis que celle du menu, pour ne pas surcharger le post,
& aussi car la souce est plus dure à lire (il y a l'ombre en plus) & plus dure à attraper, .. il faut attendre le blanc entre les 2 ombre pr être sur de pas cliquer sur l'image ...

d'autre part, ... il met aussi une erreur, dans un des :
window.document.getElementById("tabFondLogo21").style.left =lMenu-largLogo2+1;

mais je vois pas pourqoi ...

bref, .. si vous voyer où ça coince, pourquoi & surtout si vous avez de quoi le faire disparaitre, ... je suis preuneur ... :o)

merci d'avance à ceux qui se casseront la tête dessus, ...
car franchement, là ... j'ai chché mais je ne vois pas de solution ...

++blbg

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. à oui,...

    il y a un beug de transparence, qd l'image du logo est sur l'ombre, ... mais ça c'est pas grave, ... suffit juste de mettre de la transparence dans la gif ...
    1. personne ne voit comment corriger ce beug ??

      car, je débute ds le dhmtl, et le javascript en général ...
      1. eu une autre petite question qui pourrait simplifier la chose, ...

        c'est possible d'avoir une div, ou autre au dessus des 2 frames & donc d'éviter la découpe ???
        car dans ce cas ... ça serait cool ... plus de probléme ... (enfin normalement !)