Ajuster des images à la définition de l'écran dans une nouvelle fenêtre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 706 fois - Téléchargée 30 fois

Contenu du snippet

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 / Exemple :


<!-- 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
=> http://forums.blinckers-groups.com/viewtopic.php?t=159
Les mises à jours (si y'en a) sont visible là
=> http://www.blinckers-groups.com/cours/javascript_1.php

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

@++

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
19 janvier 2010

Bonjour,
Pour commencer merci pour ce super code qui est tout simplement génial.
Je voulais savoir comment était-il possible de rajouter sur chacune de mes pages qui s'ouvrent une petite flèche droite et gauche pour avancer ou reculer dans mes images?

Merci d'avance.
Raph.
Messages postés
17
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
1 avril 2005

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.