Partage
  • Partager sur Facebook
  • Partager sur Twitter

mini album photo

Sujet résolu
    4 novembre 2010 à 10:58:52

    Bonjour ! :)

    je voudrai comprendre un exemple de code sur un mini album photo
    tiré d'un livre sur javascript ! mais ça ne fonctionne pas bien .
    La console d'erreurs de firefox m'indique :

    Erreur : document.images.photoAlbum is undefined
    Fichier Source : file:///E:/Documents/javascript/Images/album%20photo.html
    Ligne : 29

    visiblement quelque chose n'est pas défini sur cette ligne mais j'ignore quoi je débute avec ce langage.

    je comprend grosso modo le principe du code ,en fait ça doit afficher des images sous forme de vignettes et lorsqu'on clique sur une,l'image doit s'afficher en taille réelle.
    Voici le code . je précise qu'il ne doit pas être codé de façon très orthodoxe pour les puristes (le livre à 4 ans) et j'ai vu dans les cours de votre site que certaines fonctions sont à éviter(notamment document.write ) mais bon c'est juste pour l'exemple je verrai pour le modifier par la suite !
    Merci pour votre aide :)

    <script type="text/javascript">
    
    function creerAlbum(txtRepertoire)
    	{
    		this.txtRepertoire=txtRepertoire;
    		this.photos=new Array;
    		this.add=addPhoto;
    		this.print=printAlbum;
    		this.view=viewPhoto;
    	}
    	
    function addPhoto (srcPhoto, largeurPhoto, hauteurPhoto, srcVignette
    , largeurVignette, hauteurVignette, txtLegende)
    	{
    		var photo=new Object();
    		photo.srcPhoto=srcPhoto;
    		photo.largeurPhoto=largeurPhoto;
    		photo.hauteurPhoto=hauteurPhoto;
    		photo.srcVignette=srcVignette;
    		photo.largeurVignette=largeurVignette;
    		photo.hauteurVignette=hauteurVignette;
    		photo.txtLegende=txtLegende;
    		this.photos[this.photos.length]=photo;
    	}
    	
    function viewPhoto(indice)
    	{
    	document.images["photoAlbum"].src
    	=this.txtRepertoire+this.photos[indice].srcPhoto;
    		
    		if (document.getElementById)
    			{
    			document.getElementById("divLegende").innerHTML
    			=this.photos[indice].txtLegende;
    			}
    	}
    	
    function printAlbum()
    	{
    		document.write("<div style=\"text-align:center\">");
    		for (var i=0; i<this.photos.length; i++)
    		  {
    			document.write("<ahref=\"javascript:album.view("+i
    			+")\"><img src=\""
    			+this.txtRepertoire
    			+this.photos[i].srcVignette+"\" width=\""
    			+this.photos[i].largeurVignette
    			+"\" height=\""+this.photos[i].hauteurVignette
    			+"\" style=\"border:1px solid#000\" title=\""
    			+this.photos[i].txtLegende+"\"></a>");
    		  }
    			
    		document.write("<img src=\""
    		+this.txtRepertoire
    		+this.photos[0].srcPhoto
    		+"\" name\"photoAlbum\" border=\"2\" hspace=\"3\">");
    		
    		document.write("<div id=\"divLegende\">"
    		+this.photos[0].txtLegende+"</div>");
    		
    		document.write("</div>");
    	}
    	
    var album=new creerAlbum("images/");
    album.add("photo1.jpg", 800, 600, "vignette1.jpg", 150, 113, "commentaire de la photo");
    album.add("photo2.jpg", 800, 600, "vignette2.jpg", 150, 113, "commentaire 2 de la photo 2");
    album.add("photo3.jpg", 800, 600, "vignette3.jpg", 150, 113, "commentaire 3 de la photo 3");
    album.print();
    </script>
    
    • Partager sur Facebook
    • Partager sur Twitter
      5 novembre 2010 à 14:51:03

      bon hé bien après avoir pas mal galéré j'ai trouvé une erreur :
      l'oublie d'un = à la ligne à la ligne 56 !
      donc ça fonctionne mais si quelqu'un peut m'expliquer la ligne 28 29 :

      document.images["photoAlbum"].src=this.txtRepertoire+this.photos[indice].srcPhoto;
      


      je comprend pas bien son rôle ! :(
      merci
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        5 novembre 2010 à 14:59:07

        d'après ce que j'ai compris elle permet de charger les photos de ton 'album'.
        • Partager sur Facebook
        • Partager sur Twitter
          5 novembre 2010 à 16:32:41

          Citation : Akira28

          bon hé bien après avoir pas mal galéré j'ai trouvé une erreur :
          l'oublie d'un = à la ligne à la ligne 56 !
          donc ça fonctionne mais si quelqu'un peut m'expliquer la ligne 28 29 :

          document.images["photoAlbum"].src=this.txtRepertoire+this.photos[indice].srcPhoto;
          



          je comprend pas bien son rôle ! :(
          merci



          C'est le chemin vers chaque image. Ce chemin est déterminé à l'aide d'une variable envoyée en argument. A toi de définir la valeur de cette variable lors de l'appel de la fonction.
          • Partager sur Facebook
          • Partager sur Twitter
            5 novembre 2010 à 18:09:15

            ok merci pour les explications !
            • Partager sur Facebook
            • Partager sur Twitter

            mini album photo

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown