Fenêtre qui ouvre au passage du curseur position variable

Signaler
Messages postés
1
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
17 février 2009
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
1797
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
21 novembre 2021
139
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,""))
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Bonjour,
une piste, si tu as initialisé la largeur et la hauteur du DIV
"InfosTerrain", s
upprimes la...
;O)