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 :

photo agrandie dans div


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 65
    Par défaut photo agrandie dans div
    Bonjour,
    j'essaye de faire afficher une grande photo en cliquant sur une vignette. Les 2 photos ne sont pas les mêmes. L'affichage doit se faire dans une div au préalable invisible (css display:none). Lorsque je clique sur la vignette, je change le css de la div en display:block.
    Mon souci est que je n'arrive pas à récupérer la largeur et hauteur de ma div, pour la centrer ( enredefinissant son left et son top).
    Petite précision, je passe par un champ <img> dans la div pour afficher la photo, et je modifie son src.

    le code dans ma page html:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="photo"><img src="" name="maphoto2" id="maphoto2" /></div>
    et le css de la div:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #photo{
    	border:1px solid black;
    	z-index:1000;
    	display:none;
    	position:absolute;
    }
    Voila le code actuel de la fonction javascript que j'apelle en cliquant sur la vignette:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function affiche_image(image){
    		var cadre=document.getElementById('photo');
    		cadre.style.display='block';
    		document.images["maphoto2"].src=image;
    		var l=cadre.style.width;
    		var h=cadre.style.height;
    		var left=(screen.width-l)/2;
    		var top=(screen.height-h)/2;
    		cadre.style.left=left + "px";
    		cadre.style.top=top + "px";
    	}
    et là ça coince, l et h n'ont aucune valeur donc ma div se met en bas à droite de ma page.
    est-ce que quelqu'un comprendrais pkoi par hasard??
    merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 250
    Par défaut
    Je sais pas si sa peux te servir, mais HighSlide à déjà tout ceci de pret... Si sa t'interesse!

    HighSlide

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 65
    Par défaut
    ok je note ça. mais en fait je profite de mes projets pour apprendre alors si je peux éviter le copier coller...

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 250
    Par défaut
    Essais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function affiche_image(image){
    		var cadre=document.getElementById('photo');
    		cadre.style.display='block';
    		document.images["maphoto2"].src=image;
    		var l=cadre.width;
    		var h=cadre.height;
    		var left=(screen.width-l)/2;
    		var top=(screen.height-h)/2;
    		cadre.style.left=left + "px";
    		cadre.style.top=top + "px";
    	}
    Il me semble qu'il ne faut pas .style

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 65
    Par défaut
    ah j'ai trouvé!!

    function affiche_image(image){

    cadre=document.getElementById("photo");
    cadre.style.display="block";
    document.images["maphoto2"].src=image;
    var l=document.images["maphoto2"].width;
    var h=document.images["maphoto2"].height;
    var left=(screen.width-l)/2;
    var top=(screen.height-h)/2;
    cadre.style.left=left + "px";
    cadre.style.top=top + "px";

    }
    par contre en enlevant juste .style ça ne marchaient pas non plus
    merçi qd même

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 65
    Par défaut
    arf fausse joie, ça ne fonctionne pas sous IE6...

    la photo ne se charge même pas dans la div

    c'est à dire que IE n'aime pas ça:

    document.images["maphoto2"].src=image;

    est-ce quelqu'un saurais pourquoi par hasard?

    image est une string, je ne comrends pas pourquoi ça ne marche pas...

    si j'essaye directement en remplaçant la variable image par l'url d'une image, du genre:

    document.images["maphoto2"].src="photo/maphoto.jpg";

    là ça fonctionne bien...

Discussions similaires

  1. Photos dans DIV à un endroit précis ?
    Par loicper dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 27/02/2012, 10h00
  2. Mettre une photo background dans une div
    Par ryodo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 07/09/2010, 09h24
  3. Centrer bout de texte dans div sans centrage
    Par Trunks dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 17/01/2006, 13h40
  4. [CSS][IE]background d'affiche pas dans div sur IE
    Par Thomzz dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 21/09/2005, 23h32
  5. cellule d'une table visible avec focus dans div scrollable
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 10h57

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