Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

AJUSTER DES IMAGES À LA DÉFINITION DE L'ÉCRAN DANS UNE NOUVELLE FENÊTRE


Information sur la source

Catégorie :Fenêtre & Pop-up Niveau : Débutant Date de création : 17/02/2003 Date de mise à jour : 17/02/2003 03:27:03 Vu : 10 906

Note :
Aucune note

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

Description

Ce script ouvre une fenêtre, lors d'un click sur une vignette.
Il detecte la taille de l'image (normale) et ajuste l'ouverture de la fenêtre à la taille de l'image en fonction de cette dernière.

But du script :

Pouvoir lors d'un click sur une image en miniature, ouvrir une nouvelle fenêtre, avec l'image qui s'ajuste à la définition d'écran de l'utilisateur.
Internet Explorer 6.0 dispose de cette fonction dans ses paramêtres. Ici grace à ce script, nous vous proposons de faire bénéficier à tous de ce confort visuel.
L'utilisateur qui souhaite visualiser une de vos miniatures, ne sera plus obligé de "jouer" de l'ascenseur pour voir toute l'image.
 

Source

  • <!-- A INSERER ENTRE HEAD ET /HEAD -->
  • <script language="JavaScript">
  • /***************************************************************************
  • * Fonction Ajustement Définition
  • ***************************************************************************
  • * AUTO_SCREEN | Ver. 1.2 | 19/09/2002
  • ***************************************************************************
  • *
  • * Ouvre une nouvelle fenêtre sur click d'une vignette et affiche
  • * l'image réelle avec ajustement à l'ecran du visiteur.
  • *
  • ***************************************************************************
  • * Copyright : (C) 2002 BLINCKERS© Groups
  • * Author : McPeter
  • * Email : mcpeter@blinckers-groups.com
  • * WWW : http://www.blinckers-groups.com
  • ***************************************************************************
  • ***************************************************************************
  • * GNU GPL (english)
  • * This program is free software; you can redistribute it and/or modify
  • * it under the terms of the GNU General Public License as published by
  • * the Free Software Foundation; either version 2 of the License, or
  • * (at your option) any later version.
  • ***************************************************************************/
  • function VoirPhoto(chemin)
  • {
  • // Définition des variables 'ecran'
  • var LargeurEcran = screen.availWidth;
  • var NewLargeurEcran = parseInt(LargeurEcran * 0.993);
  • var LargeurMaxEcran = parseInt(LargeurEcran * 0.980);
  • var HauteurEcran = screen.availHeight;
  • var NewHauteurEcran = parseInt(HauteurEcran * 0.97);
  • var HauteurMaxEcran = parseInt(HauteurEcran * 0.939);
  • //---------------------------------------------------
  • // Définition des variables 'image'
  • photo = new Image();
  • photo.src = chemin ;
  • var LargeurImg = photo.width ;
  • var NewLargeurImg = LargeurMaxEcran;
  • var HauteurImg = photo.height ;
  • var NewHauteurImg = HauteurMaxEcran;
  • //---------------------------------------------------
  • // Environnement à l'affichage => Titre de fenêtre + tableau centreur
  • // Vous pouvez modifier le texte en orange
  • var titre = "<title>Le titre de ma page de visualisation d'images</title>";
  • var HautTableau = "<table cellspacing=0 cellpadding=0 border=0 width=100% height=100%><tr><td align=center valign=middle>";
  • var BasTableau = "</td></tr></table>";
  • //---------------------------------------------------
  • // Vérification du visuel à mettre en oeuvre
  • if ((LargeurImg >= LargeurMaxEcran)||(HauteurImg >= HauteurMaxEcran))
  • { // Si l'image est plus grande que l'écran en largeur 'ou' en hauteur
  • if ((LargeurImg >= LargeurMaxEcran)&&(HauteurImg <= HauteurMaxEcran))
  • { // Si l'image est plus grande que l'écran en largeur 'et' plus petite en hauteur
  • affichage = "<img src="+photo.src+" width="+LargeurMaxEcran+">";
  • viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
  • }
  • else if ((LargeurImg >= LargeurMaxEcran)&&(HauteurImg >= HauteurMaxEcran))
  • { // Si l'image est plus grande que l'écran en largeur 'et' en hauteur
  • if ((LargeurImg >= HauteurImg)&&(HauteurImg <= HauteurMaxEcran))
  • { // Si l'image à une largeur plus grande que sa hauteur 'et' que sa hauteur est plus petite que la hauteur d'écran
  • affichage = "<img src="+ photo.src+" width="+LargeurMaxEcran+">";
  • viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
  • }
  • else if ((LargeurImg >= HauteurImg)&&(HauteurImg >= HauteurMaxEcran))
  • { // Si l'image à une largeur plus grande que sa hauteur 'et' que sa hauteur est plus grande que la hauteur 'écran
  • affichage = "<img src="+ photo.src+" height="+HauteurMaxEcran+">";
  • viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
  • }
  • else if ((LargeurImg <= HauteurImg)&&(HauteurImg <= HauteurMaxEcran))
  • { // Si l'image à une largeur plus petite que sa hauteur 'et' que sa hauteur est plus petite que la hauteur 'écran
  • affichage = "<img src="+ photo.src+" width="+LargeurMaxEcran+">";
  • viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
  • }
  • else if ((LargeurImg <= HauteurImg)&&(HauteurImg >= HauteurMaxEcran))
  • { // Si l'image à une largeur plus petite que sa hauteur 'et' que sa hauteur est plus grande que la hauteur d'écran
  • affichage = "<img src="+ photo.src+" height="+HauteurMaxEcran+">";
  • viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
  • }
  • }
  • else if ((LargeurImg <= LargeurMaxEcran)&&(HauteurImg >= HauteurMaxEcran))
  • { // Si l'image est plus petite en largeur que l'écran 'et' plus grande en hauteur
  • affichage = "<img src="+ photo.src+" height="+HauteurMaxEcran+">";
  • viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
  • }
  • }
  • else if ((LargeurImg <= LargeurMaxEcran)&&(HauteurImg <= HauteurMaxEcran))
  • { // Si l'image est plus petite que l'écran en largeur 'et' en hauteur
  • affichage = "<img src="+ photo.src+" width="+LargeurImg+">";
  • viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
  • }
  • //---------------------------------------------------
  • // Affichage de l'image
  • visuel = titre + HautTableau + affichage + BasTableau;
  • viewver.document.write(visuel);
  • //---------------------------------------------------
  • }
  • </script>
  • <!-- A INSERER DANS BODY -->
  • <BODY>
  • <!--
  • A partir d'une miniature d'une image, on applique la fonction 'VoirPhoto' avec en attribut,
  • le chemin d'accès (relatif ou absolu) de l'image normale.
  • -->
  • <IMG src="mini_image_1.gif" border="0" width="200" onclick="VoirPhoto('images/normal_image_1.gif')">
  • <IMG src="mini_image_2.gif" border="0" width="200" onclick="VoirPhoto('images/normal_image_2.gif')">
  • <IMG src="mini_image_3.gif" border="0" width="200" onclick="VoirPhoto('images/normal_image_3.gif')">
  • <IMG src="mini_image_4.gif" border="0" width="200" onclick="VoirPhoto('images/normal_image_4.gif')">
  • </BODY>
<!-- A INSERER ENTRE HEAD ET /HEAD -->

<script language="JavaScript">
/***************************************************************************
* Fonction Ajustement Définition
***************************************************************************
* AUTO_SCREEN | Ver. 1.2 | 19/09/2002
***************************************************************************
*
* Ouvre une nouvelle fenêtre sur click d'une vignette et affiche
* l'image réelle avec ajustement à l'ecran du visiteur.
*
***************************************************************************
* Copyright : (C) 2002 BLINCKERS© Groups
* Author : McPeter
* Email : mcpeter@blinckers-groups.com
* WWW : http://www.blinckers-groups.com
***************************************************************************
***************************************************************************
* GNU GPL (english)
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
***************************************************************************/

function VoirPhoto(chemin)
{
// Définition des variables 'ecran'
var LargeurEcran = screen.availWidth;
var NewLargeurEcran = parseInt(LargeurEcran * 0.993);
var LargeurMaxEcran = parseInt(LargeurEcran * 0.980);
var HauteurEcran = screen.availHeight;
var NewHauteurEcran = parseInt(HauteurEcran * 0.97);
var HauteurMaxEcran = parseInt(HauteurEcran * 0.939);

//---------------------------------------------------
// Définition des variables 'image'
photo = new Image();
photo.src = chemin ; 
var LargeurImg = photo.width ;
var NewLargeurImg = LargeurMaxEcran;
var HauteurImg = photo.height ;
var NewHauteurImg = HauteurMaxEcran;

//---------------------------------------------------
// Environnement à l'affichage => Titre de fenêtre + tableau centreur
// Vous pouvez modifier le texte en orange
var titre = "<title>Le titre de ma page de visualisation d'images</title>";
var HautTableau = "<table cellspacing=0 cellpadding=0 border=0 width=100% height=100%><tr><td align=center valign=middle>";
var BasTableau = "</td></tr></table>";

//---------------------------------------------------
// Vérification du visuel à mettre en oeuvre
if ((LargeurImg >= LargeurMaxEcran)||(HauteurImg >= HauteurMaxEcran))
  { // Si l'image est plus grande que l'écran en largeur 'ou' en hauteur
    if ((LargeurImg >= LargeurMaxEcran)&&(HauteurImg <= HauteurMaxEcran))
      { // Si l'image est plus grande que l'écran en largeur 'et' plus petite en hauteur
        affichage = "<img src="+photo.src+" width="+LargeurMaxEcran+">";
        viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0"); 
      }
      else if ((LargeurImg >= LargeurMaxEcran)&&(HauteurImg >= HauteurMaxEcran))
      { // Si l'image est plus grande que l'écran en largeur 'et' en hauteur
        if ((LargeurImg >= HauteurImg)&&(HauteurImg <= HauteurMaxEcran))
          { // Si l'image à une largeur plus grande que sa hauteur 'et' que sa hauteur est plus petite que la hauteur d'écran
            affichage = "<img src="+ photo.src+" width="+LargeurMaxEcran+">";
            viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
          }
          else if ((LargeurImg >= HauteurImg)&&(HauteurImg >= HauteurMaxEcran))
          { // Si l'image à une largeur plus grande que sa hauteur 'et' que sa hauteur est plus grande que la hauteur 'écran
            affichage = "<img src="+ photo.src+" height="+HauteurMaxEcran+">";
            viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
          } 
          else if ((LargeurImg <= HauteurImg)&&(HauteurImg <= HauteurMaxEcran))
         { // Si l'image à une largeur plus petite que sa hauteur 'et' que sa hauteur est plus petite que la hauteur 'écran
            affichage = "<img src="+ photo.src+" width="+LargeurMaxEcran+">";
            viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
          }
          else if ((LargeurImg <= HauteurImg)&&(HauteurImg >= HauteurMaxEcran))
          { // Si l'image à une largeur plus petite que sa hauteur 'et' que sa hauteur est plus grande que la hauteur d'écran
            affichage = "<img src="+ photo.src+" height="+HauteurMaxEcran+">";
            viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
          }
        } 
          else if ((LargeurImg <= LargeurMaxEcran)&&(HauteurImg >= HauteurMaxEcran))
        { // Si l'image est plus petite en largeur que l'écran 'et' plus grande en hauteur 
          affichage = "<img src="+ photo.src+" height="+HauteurMaxEcran+">";
          viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
        }
      } 
      else if ((LargeurImg <= LargeurMaxEcran)&&(HauteurImg <= HauteurMaxEcran))
      { // Si l'image est plus petite que l'écran en largeur 'et' en hauteur 
        affichage = "<img src="+ photo.src+" width="+LargeurImg+">";
        viewver = open("","","width=" + NewLargeurEcran + ",height=" + NewHauteurEcran + ",top=0,left=0");
}
//---------------------------------------------------

// Affichage de l'image
visuel = titre + HautTableau + affichage + BasTableau;
viewver.document.write(visuel);
//--------------------------------------------------- 
}
</script> 

<!-- A INSERER DANS BODY -->

<BODY>
<!-- 
A partir d'une miniature d'une image, on applique la fonction 'VoirPhoto' avec en attribut, 
le chemin d'accès (relatif ou absolu) de l'image normale. 
-->
<IMG src="mini_image_1.gif" border="0" width="200" onclick="VoirPhoto('images/normal_image_1.gif')">
<IMG src="mini_image_2.gif" border="0" width="200" onclick="VoirPhoto('images/normal_image_2.gif')">
<IMG src="mini_image_3.gif" border="0" width="200" onclick="VoirPhoto('images/normal_image_3.gif')">
<IMG src="mini_image_4.gif" border="0" width="200" onclick="VoirPhoto('images/normal_image_4.gif')">
</BODY> 

Conclusion

J'ai fait ce script suite à la demande d'un copain sur mon forum
=&gt; http://forums.blinckers-groups.com/viewtopic.php?t=159
Les mises à jours (si y'en a) sont visible là
=&gt; http://www.blinckers-groups.com/cours/javascript_1.php

Toutes critiques (constructives :-) ) est la bienvenue...

@++
 

Commentaires et avis

signaler à un administrateur
Commentaire de nomenclator le 01/04/2005 15:38:57

salut,

je suis assez newbie en javascript malgré que je me sois deja pencher un peu dessus lors d' un stage.
Je bossais sur un projet similaire.
je devais pouvoir reajuster mon image a la taille voulue.
Seul hic je pouvais bien la reduire mais l' agrandir me poser pb, puisque je n' arrivais pas a depasser la taille de la feuille de mon naviguateur sur laquelle etait mon image. Etant sous IE6, j avais les instructions document.body.ClientWidth et document.body.ClientHeight. Pour toutes 2 impossibles de leur allouer des valeurs superieurs a celle qu elles ont de base, donc probleme. J' ai testé ton code a part ca, et je me demande si c normal que la taille d' une image chargée, pour mon cas en 800*600 est placée dans le coin superieur gauche d' une nouvelle fenetre.
Cette derniere est de plus petite.
Enfin est ce vraiment normal ?            

Merci, bonne continuation a toi          
                                                                                                                                      


Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.