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 :

Déplacer une image


Sujet :

JavaScript

  1. #1
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut Déplacer une image
    Bonjour à tous.

    Je cherche à déplacer une image, voici comment je m'y suis pris :
    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
    49
    50
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
      <head>
        <title>titre de la page</title>
        <style type="text/css">
        /* <!-- <![CDATA[ */
          img {
            z-index: 1;
          }
          #content {  
            z-index: 4;
            display: none;
          }
        /* ]]> -->*/
        </style>
        <script type="text/javascript">
        // <!-- <![CDATA[
          function full(id)
          {
            // init
            var mini_img = document.getElementById('image_'+id);
            var big_img = document.images[0];
            var big_div = document.getElementById('content');
     
            // On modifie la grande image
            big_img.src = mini_img.src;
     
            // On repositionne le conteneur de la grande image
            big_div.style.top = mini_img.style.top + mini_img.style.height + 50;
            big_div.style.left = (screen.availWidth - big_img.style.width)/2;
     
            // On affiche le conteneur de la grande image
            big_div.style.display = "";
          }
        // ]]> -->
        </script>
      </head>
      <body>
     
      <div id="content">
        <img src="" alt="" />
      </div>
       <img src="./image0.jpg" alt="" onmouseover="full(0);" id="image_0" width="200" />
       <img src="./image1.jpg" alt="" onmouseover="full(1);" id="image_1" width="200" />
       <img src="./image2.jpg" alt="" onmouseover="full(2);" id="image_2" width="200" />
       <img src="./image3.jpg" alt="" onmouseover="full(3);" id="image_3" width="200" />
       </body>
    </html>

    Bien entendu ça-marche-pas (sinon je vous casserais pas les coquilles-q).
    • Le conteneur (div) n'est pas déssiné ("display: none" constant)
    • Si je fais déssiner le conteneur dès le début (pas de "display: none" dans le style), l'image est bien modifiée mais elle n'est pas déplacée (elle reste dans le coin supérieur gauche)
    • Les variables suivantes sont nulles ou NULL (je ne sais pas, mais les alert() n'affichent rien) : mini_img.style.top, mini_img.style.height, big_img.style.width


    Quelqu'un pourrait expiquer ce phénomène fort génant.
    Mile mercis.

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    big_div.style.top = mini_img.style.top + mini_img.style.height + 50+"px";
            big_div.style.left = (screen.availWidth - big_img.style.width)/2+"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 !

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par prgasp77
    Quelqu'un pourrait expiquer ce phénomène fort génant.
    Le côté aléatoire des fonctionnements "par défaut" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // On affiche le conteneur de la grande image
    big_div.style.display = "block";
    A+

  4. #4
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Citation Envoyé par SpaceFrog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    big_div.style.top = mini_img.style.top + mini_img.style.height + 50+"px";
    big_div.style.left = (screen.availWidth - big_img.style.width)/2+"px";
    ???
    La première ligne est sensée placer le conteneur un peu sous l'image survolée ; la seconde centrer horizontalement le conteneur. Il n'en est rien.


    Citation Envoyé par E.Bzz
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // On affiche le conteneur de la grande image
    big_div.style.display = "block";
    Ne fonctionne pas non plus.

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Les syntaxes qu'on t'a données sont les bonnes, en tous cas les + compatibles.
    Par contre, es-tu sûr que tes calculs fonctionnent ?
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    alert(screen.availWidth);
    alert(big_img.style.width);
    big_div.style.left = (screen.availWidth - big_img.style.width)/2;
    alert(big_div.style.left);
    est-ce que les 2 1° alert() t'affichent les bonnes valeurs (et sans le "px", sinon le calcul est pas possible), et que t'affiche la 3° ?

    A+

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    heu je ne cherchais pas à savoir ce que font tes deux lignes de code ...
    je suggérais d'ajouter +"px" à la fin ...
    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 !

  7. #7
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Ho, avec ton nouvel avatar, je ne t'ai aps reconnu SpaceFrog

    Pardon pour le malentendu. J'avais initialement fais sans les "px", mais trouvant cet ajout sur pas mal d'exemple, je les ai rajoutés (sans résultat).

    Je ne parviens pas à avoir accès aux valeurs mini_img.style.top, mini_img.style.heignt, mini_img.style.left et mini_img.style.width
    Pour le display, je ne parviens pas à le modifier non plus.

    Quelqu'un pour m'aider ?

  8. #8
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    offsetTop ?
    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 !

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par prgasp77
    Je ne parviens pas à avoir accès aux valeurs mini_img.style.top, mini_img.style.heignt, mini_img.style.left et mini_img.style.width
    Il faut qu'ils soient définis en "intra-ligne" (dans le tag), pour pouvoir y accéder via JS, non ?

    A+

  10. #10
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Qu'est-ce que te donne alert(mini_img.style.top)

    je pense que tu dois avoir un "px" parasite à la fin, non ?

Discussions similaires

  1. déplacer une image sous Web Creator
    Par raimo dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/05/2008, 15h37
  2. déplacer une image
    Par xeland dans le forum Windows
    Réponses: 7
    Dernier message: 13/02/2008, 14h33
  3. Déplacer une image dans un formulaire
    Par WITER dans le forum IHM
    Réponses: 2
    Dernier message: 01/11/2007, 03h47
  4. Déplacer une image non téléchargée
    Par Asmodean dans le forum Langage
    Réponses: 1
    Dernier message: 05/07/2007, 12h27
  5. Déplacer une image
    Par rikku84 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 19/04/2007, 02h00

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