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 :

Faire apparaître une image/popup


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 406
    Points : 5 762
    Points
    5 762
    Billets dans le blog
    1
    Par défaut Faire apparaître une image/popup
    Bonsoir,

    en fait ce que je souhaite, c'est quand l'utilisateur survole une petite image, une grande apparaît et s'il s'éloigne, elle disparaît : mon problème, c'est que la grande image n'apparaît pas : juste un cadre avec une croix rouge. Voici mon code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <head>...
    <script type="text/javascript" src="popup.js"></script>
    ...
    <.head>
    ...
    <a href="#" onmouseover="showFirstPopup()"  onmouseout="hidePopup()"><img src="affiche_reduite.jpg" width="400"   /></a>

    et popup.js :
    Code javascript : 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
    function showFirstPopup() {   
        // Test pour vérifier que le navigateur connaît les objets Popup   
        if(!window.createPopup) {   
           alert("Votre navigateur ne connaît pas les objets Popup...");   
           return false;   
        }   
     
        // Création du popup   
        var oPopup   = window.createPopup();   
        var oPopBody = oPopup.document.body;   
     
        // Mise en forme   
        oPopBody.style.backgroundColor = "#9FC1FF";   
        oPopBody.style.border          = "solid darkblue 1px";   
        oPopBody.style.margin          = "0px";   
        oPopBody.style.color           = "white";   
        oPopBody.style.fontSize        = "12px";   
        oPopBody.style.textAlign       = "center";   
        oPopBody.innerHTML             = "<img src=\"affiche.jpg\" width=\"500\"/>";   
     
        // Affichage du popup   
         var e = event.srcElement;   
        var x = event.offsetX-e.offsetLeft-500; //-500   
        var y = event.offsetY-e.offsetTop-1000;   
        oPopup.show(x, y, 500, 700, e); 
     
    }  
     
    function hidePopup() {   
       if(!oPopup) return false;   
       oPopup.hide();   
     }
    et affiche.jpg et affiche_reduite.jpg sont bien présentes sur le FTP...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oh non...

    Il existe des milliers d'exemples pour faire ça, mais toi, tu choisis la plus crade et la moins compatible...
    Je te conseille de changer le début de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!window.createPopup) {   
        alert("Votre navigateur est trop moderne pour apprécier mon code...");   
        return false;   
    }
    Sinon
    la grande image n'apparaît pas : juste un cadre avec une croix rouge
    Et tu n'es pas encore capable de savoir que c'est le symptôme d'une image non trouvée...
    affiche.jpg et affiche_reduite.jpg sont bien présentes sur le FTP
    D'accord, mais où au juste ???
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 406
    Points : 5 762
    Points
    5 762
    Billets dans le blog
    1
    Par défaut
    Et tu n'es pas encore capable de savoir que c'est le symptôme d'une image non trouvée...
    Si, je ne l'ai pas écrit, mais c'était implicite.

    D'accord, mais où au juste ???
    Tout est dans le même répertoire (le html, le js et les images)

    Il existe des milliers d'exemples pour faire ça, mais toi, tu choisis la plus crade et la moins compatible...
    Est-ce que ça vaut le coup que je passe du temps à chercher à comprendre http://sohtanaka.developpez.com/tuto...css-et-jquery/ ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 24
    Points : 29
    Points
    29
    Par défaut
    voila ma proposition (ma première dans ce forum) :
    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
     
    <script>
    	function showFirstPopup() {
    		document.img1.src = "affiche.jpg";
    		document.img1.width="1000";
    	}  
     
    	function hidePopup() {   
    		document.img1.src = "affiche_reduite.jpg";
    		document.img1.width="400";
    	}
    </script>
     
    <a href="#" onmouseover="showFirstPopup()"  onmouseout="hidePopup()">
    	<img name="img1" src="affiche_reduite.jpg" width="400"/>
    </a>
    donnez moi votre avis svp

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 406
    Points : 5 762
    Points
    5 762
    Billets dans le blog
    1
    Par défaut
    Mon avis, c'est d'abord de dire merci de m'avoir apporté une réponse, sauf que cela ne me convient pas entièrement : en effet lors du survol, la grosse image ne doit pas apparaître en lieu et place de la petite, mais dans une autre fenêtre (qui vient se superposer à la principale, comme un popup). J'ai essayé de modifier ton script pour obtenir ce résultat, mais je n'y suis pas arrivé...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 24
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Mon avis, c'est d'abord de dire merci de m'avoir apporté une réponse, sauf que cela ne me convient pas entièrement : en effet lors du survol, la grosse image ne doit pas apparaître en lieu et place de la petite, mais dans une autre fenêtre (qui vient se superposer à la principale, comme un popup). J'ai essayé de modifier ton script pour obtenir ce résultat, mais je n'y suis pas arrivé...
    s'il vous voulez juste une deuxième image ( sans l’accompagner avec un texte) voila une autre proposition
    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
    <script>
    	function showFirstPopup() {
    		document.img1.style.display 	= "block";
    		document.img1.style.position 	= "absolute";
    		document.img1.style.left 		= document.img2.style.left;
    		document.img1.style.top 		= document.img2.style.top;
    		document.img1.style.width 		= "500px";
    		document.img1.style.border 		= "solid darkblue 1px";
    		document.img1.margin			= "5px";
    		//document.img1.margin			= "0px";
    		document.img1.src				= "affiche.jpg";
    	}  
    	function hidePopup() {   
    		document.img1.src			= "";
    		document.img1.style.width	= "0";
    		document.img1.style.margin	= "0";
    		document.img1.style.border	= "0";
    	}
    </script>
     
    <div href="#" onmouseover="showFirstPopup()"  onmouseout="hidePopup()">
    	<img name="img2" src="affiche_reduite.jpg" width="400" style="position:absolute; left:50px; top:100px"/>
    	<img name="img1">
    </div>

    et si vous avez besoin d'un texte après l'image voila une proposition mais un peut bizard comme affichage :
    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
    <script>
    	function showFirstPopup() {
    		document.img1.style.display 		= "block";
    		document.img1.style.position 		= "absolute";
    		document.img1.style.left 			= document.img2.style.left;
    		document.img1.style.top 			= document.img2.style.top;
    		document.img1.style.width 			= "500px";
    		document.img1.style.border 			= "solid darkblue 1px";
    		document.img1.style.margin			= "0px";
    		document.img1.src					= "affiche.jpg";
     
    		var foo = document.getElementById('message');
    		var defaultText 		= 'Your message here';
    		// ou bien :
    		//var defaultText 		= '<?php echo $message = 'Your message here' ?>';
    		foo.value 				= defaultText;
    		foo.style.display 		= "block";
    		foo.style.position 		= "absolute";
    		foo.style.color 		= "red";
    		foo.style.background	= "blue";
    		foo.style.textAlign		= "center";
    		foo.style.width			= document.img1.style.width;
    		foo.style.border		= document.img1.style.border;
    		foo.style.left 			= document.img1.style.left;
    		foo.style.top 			= document.img1.height;
    		foo.style.margin		= document.img1.style.margin;
    		foo.style.visibility	= "visible";
    	}  
    	function hidePopup() {   
    		document.img1.src = "";
    		document.img1.style.width = "0";
    		document.img1.style.margin          = "0";
    		document.img1.style.border 			= "0";
    		var foo = document.getElementById('message');
    		foo.style.visibility	= "hidden";
    	}
     
    </script>
     
    <div href="#" onmouseover="showFirstPopup()"  onmouseout="hidePopup(); ">
    	<img name="img2" src="affiche_reduite.jpg" width="400" style="position:absolute; left:0; top:0;"/>
    	<img name="img1">
    	<textarea 	id="message" wrap="virtual" style="visibility:hidden" ></textarea> 
    </div>
    je suit débutant en Javascript, alors svp corriger moi si je me trompe ou s'il y'a une meilleur méthode, (je suit la pour apprendre)

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par laurentSc
    Est-ce que ça vaut le coup que je passe du temps à chercher à comprendre http://sohtanaka.developpez.com/tuto...css-et-jquery/ ?
    Celui-là ou un autre mais oui, il serait grand temps que tu t'intéresses à ce genre de choses...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 012
    Points : 44 262
    Points
    44 262
    Par défaut
    Bonjour,
    Citation Envoyé par laurentSc
    Tout est dans le même répertoire (le html, le js et les images)
    à vérifier le problème de casse !

    Nota: pour faire une apparition/disparition au survol le CSS est suffisant

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 24
    Points : 29
    Points
    29
    Par défaut
    j'ai tester ton programme avec interner explorer et il marche sans problème mais l'image ne disparaît pas avant un Click autre-part

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

Discussions similaires

  1. [Aide] Faire apparaître une image avec PIL
    Par Tytin dans le forum Général Python
    Réponses: 21
    Dernier message: 26/05/2013, 12h25
  2. Réponses: 4
    Dernier message: 13/01/2013, 01h00
  3. faire apparaître une image au survol d'un texte
    Par laurentSc dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/11/2012, 14h21
  4. Réponses: 1
    Dernier message: 31/07/2008, 14h30
  5. Réponses: 9
    Dernier message: 03/08/2007, 13h54

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