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 :

InnerHtml OffsetWidth Width = 0


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par d�faut InnerHtml OffsetWidth Width = 0
    Bonjour

    Je coince sur l'utilisation cons�cutive de offsetwidth apr�s un innerhtml

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    element.innerHTML = codehtml;
    Le code html est tr�s simple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <img alt="" src="../Images/image.png"/>
    Mon "element" est un div qui doit prendre la taille de son contenu et qui joue le r�le d'une popup qui appara�t quand je click sur un lien.
    J'ai mis width et height en auto dans le css.

    Le probl�me vient de commande
    Qui me renvoie 0 au lieu de la width de mon image ins�r�e...

    Du coup � la premi�re apparition de ma popup, j'ai mon div qui est tout petit et mon image qui d�passe. Au 2e click, c'est nikel, l'image est enti�rement dans le div qui a pris les dimensions de mon image

    Une id�e ? Merci d'avance

  2. #2
    Membre chevronn� Avatar de Kennel s�bastien
    Homme Profil pro
    D�veloppeur
    Inscrit en
    Septembre 2008
    Messages
    226
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Par d�faut
    Bonjour inspecteur rick,

    Tu fais bien les choses dans le bon ordre tu as ins�r�, puis tu as demand� la largeur du div ?

    Que fait � offsetWidth � sur l'image ?

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par d�faut
    Bonjour, Kennel s�bastien

    Merci de t'int�resser � mon probl�me

    Je m'en sers pour positionner mon popup sur l'�cran. Pour �tre en dessus de l��l�ment que j'ai click�.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var popupheight = element.offsetHeight - 2 * 11;
    var additionalpadding = lineheight / 2 - 11;
    var popuptop = pos.y - popupheight - 2 * 11 - 2 * additionalpadding - popupholderpos.y;

  4. #4
    Membre tr�s actif
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    744
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 80
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 744
    Par d�faut
    jour

    c'est peut etre du au fait qu'au moment de l'insertion de l'image sa taille ne soit pas connu car pas encore precharger essai avec getBoundingClientRect() et si c'est pareil recupere la taille de l'image et donne au div la taille de l'image mais avant tout il faut precharger l'image

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par d�faut
    Bonsoir, melka one

    J'ai compris la th�orie
    Mais par "pr�charger" l'image, tu veux dire ? Comment on s'y prend ?

    Merci

  6. #6
    Membre tr�s actif
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    744
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 80
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 744
    Par d�faut
    il faut utiliser new image et l'evenement onload

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var une_image=new Image
     
    une_image.src = 'chemin.jpg';
     
    une_image.onload=function(){
     
    // le code a executé
     
    }

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par d�faut
    Je crois que c'est probl�me de "d�bordement", j'ai d�j� eu �a, c'est gal�re je trouve...

    La taille du conteneur qui peut �tre plus petite que celle de son contenu c'est un truc que je ne trouve pas logique, je trouve �trange qu'il faille g�rer cela...

  8. #8
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    Mais par "pr�charger" l'image, tu veux dire ? Comment on s'y prend ?
    cela peut �tre simplement le fait que la � popup � appartient au document et que l'on affiche/masque celle-ci tout simplement.
    En utilisant le positionnement ad�quat tu n'aurais rien de plus � g�rer.

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par d�faut
    Merci pour vos r�ponses. Je ne peux pas tester pour l'instant...

    @melka one : Merci pour la r�ponse sur le pr� chargement de l'image, je vais essayer.

    @NoSmoking : je n'ai pas compris ta r�ponse
    En utilisant le positionnement ad�quat tu n'aurais rien de plus � g�rer.

  10. #10
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Il suffit de mettre ta popup en position:absolute ET l'�l�ment r�f�rent, celui que tu survoles, en position:relative.

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par d�faut
    D�sol� du d�lais de r�ponse, j'�tais en d�placement.

    @NoSmoking : J'ai essay�, la popup apparait � l'endroit o� j'ai mis mon div de la popup mais elle ne se positionne pas en dessus du mot survol�...

  12. #12
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut
    Citation Envoy� par inspecteur rick Voir le message
    [...] Mon "element" est un div qui doit prendre la taille de son contenu et qui joue le r�le d'une popup qui appara�t quand je click sur un lien. J'ai mis width et height en auto dans le css. Le probl�me vient de commande element.offsetWidth Qui me renvoie 0 au lieu de la width de mon image ins�r�e [...]
    Il faut utiliser getComputedStyle, voir : https://developer.mozilla.org/fr/doc...tComputedStyle

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  13. #13
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par d�faut
    @danielhagnoul : Je viens de tester avec la fonction "getComputedStyle"
    M�me probl�me, au 1er click j'ai 0px en width de ma popup. L'image apparait dans la popup, je re-click et la j'ai la bonne width sur ma popup.

  14. #14
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut
    • un div qui doit prendre la taille de son contenu et qui joue le r�le d'une popup qui appara�t quand je click sur un lien
    • au 1er click j'ai 0px en width de ma popup. L'image appara�t dans la popup, je reclick et la j'ai la bonne width sur ma popup.

    Logique si c'est l'image (le contenu) qui fixe la taille de la division (le contenant). Il faut afficher la division (popup) apr�s le chargement de l'image (load event, message n� 6 de @melka one).

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  15. #15
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Un petit exemple g�r� par le CSS
    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>Image au survol</title>
    <meta name="Author" content="NoSmoking">
    <style>
    span.infobulle {
      position: relative;
      background: #EFEFEF;
      cursor: pointer;
      displa: inline-block;
    }
    span.infobulle span {
      display: none;
      position: absolute;
    }
    span.infobulle img {
      display: block;
    }
    span.infobulle:hover span {
      display: inline-block;
      top: 0;
      left: 50%;
      border: 1px solid #880;
      transform: translate(-50%, -100%);
    }
    </style>
    </head>
    <body>
    <h1>Image au survol</h1>
    <p>Ceci est un texte qui comporte une <span class="infobulle">image<span><img src="https://www.developpez.net/forums/avatars/405341-nosmoking.gif" alt=""></span></span> apparaissant au survol.</p>
    <p>Un autre texte comportant également une <span class="infobulle">image<span><img src="https://www.developpez.net/forums/avatars/285162-danielhagnoul.gif" alt=""></span></span> apparaissant au survol.</p>
    </body>
    </html>

Discussions similaires

  1. Diff�rence style.width / propri�t� DOM offsetWidth
    Par loukoum82 dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 22/09/2009, 14h13
  2. [W3C] [Debutant] valid. code xhtml et attributs width et align
    Par Marc_3 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 4
    Dernier message: 08/04/2005, 07h36
  3. div et innerHTML : tout sur une ligne?
    Par LineLe dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 04/04/2005, 11h15
  4. Probl�me innerHTML sur div !!!
    Par aburner dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 27/01/2005, 09h23
  5. getelementbyid innerhtml sur Opera?
    Par cynthia dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 31/12/2004, 10h44

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