begin process at 2012 05 29 19:07:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

OffsetTop - comportement hératique sur Firefox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

OffsetTop - comportement hératique sur Firefox

vendredi 2 mai 2008 à 14:11:23 | OffsetTop - comportement hératique sur Firefox

lmeylan

Bonjour,

Mon objectif: pouvoir positionner des images en superposition d'autres !

je me creuse la tête depuis pas mal de temps pour comprendre pourquoi Firefox n'affiche pas correctement la page lors du premier chargement de la page, mais par contre l'affiche correctement lorsque l'on la réactualise !
Le problème revient si on vide le cache.
Cela marche bien avec Internet Explorer !

Il peut être constaté sur :
[ Lien ]
--> chargez la page --> le graphe n'est pas aligné avec le fond
--> actualisez --> les deux s'alignent
--> effacez votre cache --> nouveau désalignement

J'ai tenté de remplacer les document.write par du DOM pur, sur le conseil de SpaceFrog sur Developpez.com, mais cela ne change rien.

Voici mon code (simple):
Code :
<script language="Javascript" TYPE="text/javascript">
// position des réalisations,
function getOffsets(obj){
var offsetTop = obj.offsetTop;
var offsetLeft = obj.offsetLeft;
while((obj = obj.offsetParent)!=null){
offsetTop += obj.offsetTop;
offsetLeft += obj.offsetLeft;
}
return[offsetTop,offsetLeft];
}
</script>
<img id="my_map_v" src="ly_carte2.jpg" style="border-width: 0px 0 0 0;">
 
<div id="my_map"><img src="reglyon.jpg" style="border-width: 0px 0 0 0"></div>
<script language="Javascript" TYPE="text/javascript">
var obj1 =document.getElementById("my_map");
var top_map = getOffsets (obj1)[0];
var left_map = getOffsets (obj1)[1];
 
// position des réalisations, couleurs corrspondantes et image associée
document.write("<div style=\"position:absolute;top:"+top_map+"px;left:" + left_map +"px;\">");
document.write("<img name=\"Fond1\" src=\"reglyon.gif\" WIDTH=\"662px\" height=\"576px\" border=\"0\">");
document.write("</div>");
</script>

Laurent
Passionné d'art et d'histoire
vendredi 2 mai 2008 à 14:25:28 | Re : OffsetTop - comportement hératique sur Firefox

bultez

Membre Club


Bonjour,

    pas très bien compris ce que tu  cherches à faire ?

    mais (obj1)[1]   ? c'est quoi ?

    comme tu fais juste deavnt var obj1 =document.getElementById("my_map");
       il n'y en a qu'1, et ce n'est pas un array !


                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 2 mai 2008 à 14:27:42 | Re : OffsetTop - comportement hératique sur Firefox

bultez

Membre Club
ça doit d'ailleurs t'afficher une erreur...
¡--------¡----------------------------------------------------------¡
|FireFox |regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
| | et mieux, télécharger FireBug |
|--------|----------------------------------------------------------|
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | ° Afficher une notification de chaque erreur de script |
| | ° Désactiver le débogage de Scripts (Internet Explorer) |
| | et mieux, télécharger le Debogger IE |
| | voir aussi DebugBar et Companion JS |
|--------|----------------------------------------------------------|
|K-Meleon|regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
|--------|----------------------------------------------------------|
|Opera |regarder la "console d'erreurs" |
| | Outils / Avancé / Console d'erreurs |
|--------|----------------------------------------------------------|
|Safari |regarder Debug / Show JavaScript Console |
| |modif Fichier "Support:\Documents and Settings\utilisateur|
| |\Application Data\Apple Computer\Safari\Preferences.plist"|
| | y ajouter <key>IncludeDebugMenu</key> |
| | <true/> |
!--------!----------------------------------------------------------!

et la taille / position des éléments : regarder ici par exemple ?

                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 2 mai 2008 à 14:37:50 | Re : OffsetTop - comportement hératique sur Firefox

lmeylan

Merci pour la réponse spontanée

réponse à la première remarque (mon objectif):


Pour mieux comprendre clique sur ce lien.
Sur Firefox, tu devrais observer que le détail de la carte n'est pas aligné avec le fond (beige).
Mais si tu réactualise la page, ça marche !
Mon objectif --> que ça marche ds ts les cas ...
 
réponse à la deuxième remarque :
Ma fonction getOffsets(obj) retourne un array dont le premier élément est top et le deuxième est left.
Donc quand je récupère l'info, je fais :
getOffsets (obj1)[0] pour avoir le "Top"

réponse à la troisième remarque :
l
a console d'erreur Mozilla ne relève aucune erreur, ni au chargement initial ni au rechargement.


Laurent
Passioné d'art et d'histoire
vendredi 2 mai 2008 à 16:06:14 | Re : OffsetTop - comportement hératique sur Firefox

bultez

Membre Club


>>le détail de la carte n'est pas aligné
    ah...ok;
>>Mozilla ne relève aucune erreur
    bon uniquement un truc de positionnement , avec comportement
          IE et FF différent...

>>getOffsets(obj) retourne un array
    navré ! j'avais mal lu !  j'avais vu
obj1[1]     
    houla... faut que j'aille au lit moi.



                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 2 mai 2008 à 16:20:02 | Re : OffsetTop - comportement hératique sur Firefox

bultez

Membre Club
peux-tu essayer avec
 window.onload=function()
    {   var obj1 =document.getElementById("my_map");
         var
top_map = getOffsets (obj1)[0];
         var
left_map = getOffsets (obj1)[1];    ...


                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 2 mai 2008 à 19:39:39 | Re : OffsetTop - comportement hératique sur Firefox

lmeylan

OK ça marche avec Windows.onload, mais l'exemple que j'ai soumis est ultra simplifié.
Sur mon site, j'ai pas loin d'un millier d'image à positionner (autant qu'il y a d'ouvrages sur une carte géographique)--> il faut que ça marche du premier coup.

Pour info voilà comment j'ai implementé la proposition avec windows.onload

<script language="Javascript" TYPE="text/javascript">
// position de la première image,
var first_img    = document.createElement("img");
    with(first_img){
        id         = "my_map1"
        src        = "ly_carte2.jpg";
        style.borderWidth    = "0px 0 0 0";
    }
document.body.appendChild(first_img);
</script>
 
<br>
 
<script language="Javascript" TYPE="text/javascript">
// position de la seconde image,
var scd_img    = document.createElement("img");
    with(scd_img){
        src        = "reglyon.jpg";
        id         = "my_map"
        style.borderWidth    = "0px 0 0 0";
    }
document.body.appendChild(scd_img);

// prpéparation de l'imageà superposer
var detail    = document.createElement("img");
 
    with(detail){
        src        = "reglyon.gif";
        id         = "my_detail"
        style.position    = "absolute";
         style.top        = "0px";
          style.left        = "0px";
        style.borderWidth    = "0px 0 0 0";
    }
 
document.body.appendChild(detail);

// on attend la fin de chargement du document, pour replaer l'image à superposer au bon endroit

function my_move()
    {
        var obj1 =document.getElementById("my_map"); // position de l'objet cible
        var top_map = getOffsets (obj1)[0];
        var left_map = getOffsets (obj1)[1];
        var obj2 =document.getElementById("my_detail"); // on récupère l'objet de l'image à superposer
        with(obj2){
             style.top        = top_map+"px";
              style.left        = left_map+"px";
        }
    }

window.onload=my_move;
</script>

Laurent
Passionné d'art et d'histoire
samedi 3 mai 2008 à 06:54:35 | Re : OffsetTop - comportement hératique sur Firefox

bultez

Membre Club
peu importe le nombre d'images   ;o)
FF déclenche parfois le javascript avant que le "html devant"
       ne soit interprété.   d'ou le onload.
il faut s'assurer que l'élément ( l'image)  est bien "actif"  avant
    d'y toucher.   on peut aussi tester complete sur l'image.
>>pas loin d'un millier d'image à positionner
    ça fait beaucoup... mais toutes sont dotées  d'actions ?
    et pourquoi n'avoir pas utilisé map + area simplement en html ?

                Cordialement            Bul         [mon Site]     [M'écrire]
samedi 3 mai 2008 à 10:36:58 | Re : OffsetTop - comportement hératique sur Firefox

lmeylan

En fait, pour chaque ouvrage à positionner sur la carte géographique, j'associe une couleur et une forme différente, ainsi qu'un lien actif permettant d'appeler la page correspondante.

voir la carte alsace-lorraine.

Là où ça se complique c'est que dans certains cas, je propose une carte de la région avec ses ponts, suivi une carte de la ville avec ses ponts. voir Paris :

Tout ça est généré en php, en dynamique à partir d'une base de données..
Avec une carte seulement ça marche, avec deux cartes, ça plante (au premier chargement), d'où mon appel à "expert".

Merci encore pour les conseils! je vais voir avec windows.onload, mais je crains que les temps de chargement ne soient rédhibitoires.

Passioné d'art et d'histoire
samedi 3 mai 2008 à 10:51:38 | Re : OffsetTop - comportement hératique sur Firefox

bultez

Membre Club

c'est très intéressant.

je ne sais pas si créer totalement cela en dynamique depuis une
    base de données  était une si bonne idée ?
sans critique aucune de quelques manières de quoi que ce soit !

ça me semble "simplement" relever de map + area en quasi pur htm
    ( ou ... généré en php )

                Cordialement            Bul         [mon Site]     [M'écrire]

1 2

Cette discussion est classée dans : var, document, obj, map, offsettop


Répondre à ce message

Sujets en rapport avec ce message

probleme avec document.writ() [ par neolin85 ] Bonsoir à tous,Je souhaite construire un menu horizontal sauf que j'ai un soucis avec la méthode write de la classe document.En fait, chaque fois que probleme affichage/masquer menu vertical [ par neolin85 ] Bonjour à tous, j'ai developpé un petit code qui permet de faire un menu horizontal avec des menus verticaux pour chaque clique sur le menu.J'ai un pe menu en cascade [ par oceane751 ] bonjour à tous!! j'ai du code me permettant de creer un menu horizontal en cascade, mais j'ai un peu de mal en effet, pour certain element du menu Paramètres [ par piep14 ] Bonjour, je cherche en vain depuis hier a passer mes variables hors d'une fonction meme en la déclarant en global et ca ne passe pas ->undefined <img interdire mots [ par tonytruand ] Bonjour à la communauté !j'ai besoin de votre aide, en effet je cherche à retirer dans un texte, par exemple, tous les : le la les du en ect. J'ai pou Probleme de positionnement de mon menu [ par skippy729 ] Bonjour, je voudrais utiliser ce script afin d'inserer un menu sur mon site, seulement lorsque je teste ce script, le menu se retrouve en haut a gauch code html comme cookie [ par g_fuck ] salut! j'ai un code JS servant a storer des cookies : function  SetCookie (name, value) {  var argv = SetCookie.a Menu déroulant avec bouton de commande dans iframe [ par fabiano13 ] Ca marche très bien sur ie, mais comment le rendre compatible avec les autres navigateurs ?D'avance merci.Fabiano13 <font face= envoi formulaire xmlhttprequest [ par shadow1779 ] Bonjour,j'essai de faire vérifier le contenu d'un formulaire avec xmlhttprequest mais ce coup ci j'ai une petite erreur que je n'arrive pas a comprend dynamique dans les adresses d'objet [ par Ankaa1988 ] bonjour a tous, encore plein de question et toujours pas de réponse... cette fois c'est plutot un problème de syntaxe.. en effet j'ai une adresse d'o


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales