Fenêtre qui ouvre au passage du curseur position variable

cs_sylvain_r Messages postés 1 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 17 février 2009 - 17 févr. 2009 à 06:20
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 17 févr. 2009 à 20:25
Bonjour, j'aimerais obtenir de l'aide pour trouver une commande équivalente à OffsetX et OffsetY pour Firefox, avec Explorer le JavaScript que j'utilise pour faire apparaitre un tableau avec des variables fonctionne bien, mais dans Firefox il n'est pas toujours visible selon la position du tableau en rapport avec le bord du navigateur. Pour voir le résultat utilisez le lien. http://www.campingdelete.qc.ca/disp/Terrains.htm

function AfficherInfosTerrain(strIDTerrain,intPosX,intPosY)
{
  var intCpt;
  var s;
  var strTmp;
  var varTerrain;
  var divInfosTerrain;
  var intTmpX;
  var intTmpY;
  var intOrig;

  varTerrain=Terrains[strIDTerrain.substr(10)];

  //Construction du code HTML permettant d'afficher les informations d'un terrain
  s='';
  s=s+'';
  s=s+'  ----
';
  s=s+'    ';
  s=s+'      <table border="0" cellpadding="0" cellspacing="0" class="ENTTERR">';
  s=s+'        ----
';
  s=s+'         , </td>';
  s=s+'          Terrain #'+varTerrain[I_ARR_TERR_NO]+', ';
  s=s+'          , ';
  s=s+'        ';
  s=s+'     
';
  s=s+'    </td>';
  s=s+'  </tr>';
  s=s+'  <tr>';
  s=s+'    <td>';
  s=s+'      ';
  s=s+'        ----
';
  s=s+'          , ';
  s=s+'          ';
  s=s+'            <table border="1" cellpadding="2" cellspacing="0" width="100%" class="ENTPROP">';

  s=s+'              ----
';
  s=s+'               , Description</td>';
  s=s+'                '+varTerrain[I_ARR_TERR_DESC]+', ';
  s=s+'              ';

  s=s+'              ----
';
  s=s+'                Dimension, ';
  s=s+'                '+varTerrain[I_ARR_TERR_DIM]+', ';
  s=s+'              ';

  s=s+'              ----
';
  s=s+'                Type, ';
  s=s+'                ';
  strTmp="";
  for(intCpt=0;intCpt<varTerrain[I_ARR_TERR_TYPE_TERR].length;intCpt++)
  {
    if(strTmp!=="")
      strTmp=strTmp+", ";
    strTmp=strTmp+TypesTerrain[varTerrain[I_ARR_TERR_TYPE_TERR][intCpt]];
  }
  s=s+strTmp+', ';
  s=s+'              ';

  s=s+'              ----
';
  s=s+'                Service(s), ';
  s=s+'                ';
  strTmp="";
  for(intCpt=0;intCpt<varTerrain[I_ARR_TERR_SVC].length;intCpt++)
  {
    if(strTmp!=="")
      strTmp=strTmp+", ";
    strTmp=strTmp+Services[varTerrain[I_ARR_TERR_SVC][intCpt]];
  }
  s=s+strTmp+', ';
  s=s+'              ';

  s=s+'              ----
';
  s=s+'                Dates louées, ';
  s=s+'                ';
  strTmp="";
  for(intCpt=0;intCpt<varTerrain[I_ARR_TERR_LOC].length;intCpt++)
  {
    if(strTmp!=="")
      strTmp=strTmp+"
";
    strTmp=strTmp+varTerrain[I_ARR_TERR_LOC][intCpt];
  }
  s=s+strTmp+', ';
  s=s+'              ';

  s=s+'           
';
  s=s+'          </td>';

  if(varTerrain[I_ARR_TERR_IMG]!=="")
  {
    s=s+'        <td bgcolor="#000000"></td>';
    s=s+'        <td></td>';
  }

  s=s+'          <td background="images/DroiteCote.gif"></td>';
  s=s+'        </tr>';
  s=s+'      </table>';
  s=s+'    </td>';
  s=s+'  </tr>';
  s=s+'  <tr>';
  s=s+'    <td>';
  s=s+'      ';
  s=s+'        ----
';
  s=s+'          , ';
  s=s+'          , ';
  s=s+'          , ';
  s=s+'        ';
  s=s+'     
';
  s=s+'    </td>';
  s=s+'  </tr>';
  s=s+'</table>';

  divInfosTerrain=document.getElementById("InfosTerrain");

  divInfosTerrain.innerHTML=s;

  intTmpX=intPosX;
  if((document.getElementById("Carte").offsetLeft+intTmpX+divInfosTerrain.offsetWidth)>(document.body.scrollLeft+document.body.clientWidth))
    intTmpX=document.body.scrollLeft+document.body.clientWidth-divInfosTerrain.offsetWidth-document.body.leftMargin;

  if(intTmpX<document.body.scrollLeft)
    intTmpX=document.body.scrollLeft;

  intTmpY=intPosY+20;
  intOrig=intTmpY;
  if((document.getElementById("Carte").offsetTop+intTmpY+divInfosTerrain.offsetHeight)>(document.body.scrollTop+document.body.clientHeight))
    intTmpY=intTmpY-divInfosTerrain.offsetHeight-20;

  if((document.getElementById("Carte").offsetTop+intTmpY-document.body.scrollTop)<0)
    intTmpY=intOrig;

  divInfosTerrain.style.left=intTmpX;
  divInfosTerrain.style.top=intTmpY;

  divInfosTerrain.style.visibility="visible";
}

Merci de votre aide.

Sylvain

2 réponses

@karamel Messages postés 1816 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 30 novembre 2022 145
17 févr. 2009 à 11:27
bonjour
 tu peut toujour essayer ca qui retire le px et transforme la variable en chiffre

var elem=document.getElementById('monelement')
var pos=parseInt(elem.style.left.replace(/pt/gi,""))
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
17 févr. 2009 à 20:25
Bonjour,
une piste, si tu as initialisé la largeur et la hauteur du DIV
"InfosTerrain", s
upprimes la...
;O)
0