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 :

Changement de photo vertical vers horizontal


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut Changement de photo vertical vers horizontal
    Bonjour,

    J'aimerais intégrer sur mon site une galerie de photos mignature avec la possibilité d'afficher une grande version en cliquant dessus.

    Cela marche très bien avec une photo verticale.

    Pour une photo horizontale, j'aimerais modifier les propriétés width et height de la grande version à afficher selon l'orientation de la photo mignature.
    J'ai repris l'idée du script que j'ai trouvé sur internet en ajoutant la variable img mais cela ne fonctionne pas

    Voici le 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
    26
    27
    28
    29
    30
    31
    32
    33
    <script type="text/javascript">	
    		function displayPics()
    {
        var photos = document.getElementById('galerie_mini') ;
    	// On récupère l'élément ayant pour id galerie_mini
    	var liens = photos.getElementsByTagName('a') ;
    	var img = photos.getElementsByTagName('img');
    	// On récupère dans une variable tous les liens contenu dans galerie_mini
    	var big_photo = document.getElementById('big_pic') ;
    	// Ici c'est l'élément ayant pour id big_pic qui est récupéré, c'est notre photo en taille normale
     
    	for(var i = 0 ; i < liens.length ; i++)
    	// Une boucle parcourant l'ensemble des liens contenu dans galerie_mini
    	{
    		liens[i].onclick = function()
    		// Au clique sur ces liens
    		{
    			big_photo.src = this.href ; // On change l'attribut src de l'image en le remplaçant par la valeur du lien
    			if (img[i].width > img[i].height) { // Affichage photo (big_pic) horizontal ou vertical selon orientation photo mignature
    			big_photo.width=340;
    			big_photo.height=228;
    			}
    			else {
    			big_photo.width=237;
    			big_photo.height=355;
    			}	
    			return false ; // Et pour finir on inhibe l'action réelle du lien
    		}
    	}
    }
    window.onload = displayPics ;
    // Il ne reste plus qu'à appeler notre fonction au chargement de la page
    </script>
    Je vous remercie pour votre aide!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Tu utilises bien this.href, par contre, j'ai des doutes sur la portée de "img[i]" et "big_photo" dans ta fonction anonyme pour le onclick.

  3. #3
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par kernelfailure Voir le message
    j'ai des doutes sur la portée de "img[i]" et "big_photo" dans ta fonction anonyme pour le onclick.
    +1

    Explications et réponse dans la FAQ
    (le cas est différent, mais le problème et donc la solution, sont les mêmes)

    A+

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Un peu compliqué pour un non expert en javascript Pas compris comment adapter ce code à mon cas.

    Par contre je m'en suis sorti quand même en intégrant un id="horiz" aux balises <a> des mignatures horizontales.

    Ensuite, la condition dans le javascript pour affichage horizontal ou vertical de la version en grand format devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (this.id == "horiz")
    Ca pourra peut être aider quelqu'un...

    Merci à vous.

  5. #5
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    et du coup tu te retourves avec plusieurs id identiques sur la page ...

    en fait la solution proposé indique juste de lettre une propriété (attribut) personnelle à l'objet par exempleet ensuite de tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (this.sens == "horiz")

    mais les id identiques sont à proscrire !!!

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    OK merci beaucoup pour la remarque !

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

Discussions similaires

  1. [Formules] Décalage vertical et horizontal
    Par Alqualonde dans le forum Excel
    Réponses: 5
    Dernier message: 06/07/2007, 13h58
  2. Copier champ vertical vers horizontal
    Par benjisan dans le forum Excel
    Réponses: 2
    Dernier message: 31/05/2007, 10h59
  3. Envoi de photos gsm vers le web : quel langage ?
    Par dojoman dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 22/05/2007, 20h27
  4. Question débutant: Affiche vertical et horizontal
    Par Hijack54 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 09/02/2007, 13h24
  5. scrolling vertical et horizontal
    Par myriam dans le forum MFC
    Réponses: 2
    Dernier message: 24/01/2003, 17h06

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