IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[DOM] offsetTop - comportement hératique (Firefox)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut [DOM] offsetTop - comportement hératique (Firefox)
    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 !

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <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>

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    document.write
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    belu je suis, et je ne comprends pas le sens de la réponse ci-dessus.

    Oui, je fais bien usage de "document.write()" ...

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    document.write a une facheuse tendance a être instable et a détruire ce qui existe sur la page ...
    passe plutot par le DOM
    document.createElement ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut Même problème en 100% DOM
    J'ai procédé au changement et ai exactement le même effet.

    Il peut être constaté sur :
    http://www.art-et-histoire.com/tempo.html
    --> chargez la page --> le graphe n'est pas aligné avec le fond
    --> actualisez --> les deux s'alignent
    --> effacez votre cache --> désalignement

    mon code modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <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];
    }
     
    var first_img    = document.createElement("img");
    	with(first_img){
    		src		= "ly_carte2.jpg";
    		style.borderWidth	= "0px 0 0 0";
    	}
    document.body.appendChild(first_img);
    </script>
     
    <br>
     
    <script language="Javascript" TYPE="text/javascript">
    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);
     
    var obj1 =document.getElementById("my_map");
    var top_map = getOffsets (obj1)[0];
    var left_map = getOffsets (obj1)[1]; 
    // super position des détails 
    var detail    = document.createElement("img");
     
    	with(detail){
    		src		= "reglyon.gif";
    		style.position	= "absolute";
    	 	style.top		= top_map+"px";
    	  	style.left		= left_map+"px";
    		style.borderWidth	= "0px 0 0 0";
    	}
     
    document.body.appendChild(detail);
    </script>
    Je ne vois toujours pas ce qui cloche ...

    Merci à tout sorcier de me prêter sa baguette magique

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var top_map = getOffsets (obj1)[0] +"px";
    var left_map = getOffsets (obj1)[1] +"px";
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] noeud vide sous firefox
    Par le_chomeur dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/11/2007, 13h41
  2. [DOM] innerHTML value input firefox
    Par Teufboy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/08/2007, 10h07
  3. [DOM] InnerHTML, radioButton et Firefox
    Par jupit dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 10/04/2007, 20h49
  4. PB avec mailto et son comportement sous FireFox
    Par Bobabar dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 04/01/2006, 21h14
  5. [DOM] [javascript] pb IE/Firefox
    Par topolino dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/12/2005, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo