Téléchargement
illégal
Posez votre question Signaler

Ouvrir une popup en cliquant sur une image

Thomas - Dernière réponse le 27 sept. 2010 à 14:59
Bonjour tout le monde,

je suis un petit nouveau et je connais un peu la programmation mais pas du tout le javascript et j'ai un probleme.

voilà, j'ai des images qui défilent sur un bandeau, et ces images sont de taille réduite. Je veux que, en cliquant dessus une popup s'ouvre et contienne la grande image. J'aimerais de plus que l'on ne voit pas l'url mais un titre dans la barre de la popup
Je ne sais pas comment faire, et bien qu'ayant cherché je ne trouve pas. Je suppose qu'il faut utilisé la fonction window.open mais je n'en suis pas sur.
Ou peut etre qu'il faut le faire dans un autre langage.

Merci d'avance pour votre aide.
Lire la suite 

Ouvrir une popup en cliquant sur une image »

6 réponses
Réponse
+12
moins plus
Solution 1 :

<IMG SRC="./images/mon_image.gif" WIDTH="20" HEIGHT="50" BORDER=0 ALT="description" onClick="window.open('./popup.htm', 'NOM', 'scrollbars=yes,width=550,height=600')">


=> Dans ce cas, l'image est cliquable mais le curseur ne se transforme pas en main lorsqu'on la survole. Pour remédier à ca il faut écrire :

Solution 2 :

<A HREF="#" onClick="window.open('./popup.htm', 'NOM', 'scrollbars=yes,width=550,height=600')"><IMG SRC="./images/mon_image.gif" WIDTH="596" HEIGHT="46" BORDER=0 ALT="description"></A>


Dans les deux cas, tu dois creer une page 'popup.htm'. C'est dans cette page que tu préciseras le titre qui doit apparaitre dans la barre de titre.
Ajouter un commentaire
Réponse
+2
moins plus
Bsr Thomas,

Voici un ex de code :

La page qui contient les images en miniatures

vignette.htm

<html><head><title>Test photo</title>
<script language="JavaScript">
<!--
var photographie=0;
var wind=null;

function Photo(fichier, titre)
{
	this.fichier = fichier;
	this.titre = titre;
}

var photos=new Array();

photos[0]=new Photo('images/test.jpg','Mon image nr 1');
photos[1]=new Photo('images/toto.jpg','Mon image favorite');
// ajoute ici tes autres images ...

function charger_image(idx)
{
	photographie=photos[idx];
	wind=open("popup.htm",'popup','width=400,height=300,toolbar=no,scrollbars=no,resizable=yes'); 
	return false;
}

// -->
</script>
</head>
<body>

<a href="javascript:void(0)" onclick="return charger_image(0);"><img src="images/test_small.jpg"></a><br>
<a href="javascript:void(0)" onclick="return charger_image(1);"><img src="images/toto_small.jpg"></a><br>

</body>
</html>


La même page qui affiche chaque image en grand :
popup.htm

<html><head><title></title>
<style>
.abs {position:absolute; left:0px; top:0px;}
</style>
<script language="JavaScript">

<!--
// Donne le titre de l'image à la fenêtre
document.title=window.opener.photographie.titre;

// Précharge l'image en mémoire mais ne l'affiche pas
im1=new Image()
im1.src=window.opener.photographie.fichier;

var obj=null;

// Affiche l'image précharger
function afficher()
{
	if (document.layers)
	{
		obj=document.layers["div_photo"].document.images["photo"];
	}
	else
	{
		obj=document.images["photo"];
	}

	obj.src=im1.src;
}


// Redimensionne la fenêtre
function redimensionner()
{
	window.resizeTo(obj.width,obj.height);
	self.focus();
}

// -->
</script>
</head>
<body onload="redimensionner()">
<div class="abs" name="div_photo">
<img src="images/vide.gif" id="photo" name="photo">
</div>
<script>
<!--
afficher();
// -->
</script>
</body>
</html>



Par défaut lorsque la page popup s'ouvre elle précharge l'image dans l'objet Im1 de type Image puis affiche l'image transparente : vide.gif

Ensuite l'image est aussitôt remplacée par celle préchargée au départ.

Enfin la fenêtre est redimensionnée.


Et voilà

PhP    [Push the button,Don't push the
.         button,Trip the station,Change the channel]
Ajouter un commentaire
Réponse
+1
moins plus
Les Codes évolue Comme tout le reste pour évité deux pages ou 14 pages comme le précédents post le montre je propose un petit code JAVA Mais bien plus clair compact et performent il s'adapte BIEN ;) Enjoy ***



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>
<a href="javascript:;" onclick="afficheMaxi('photo en grand . terminaison')">
<img src="adresse Photo .terminaison photoAffichage mini" border=1  alt="Cliquer pour agrandir" width="169" height="169">

ces deux partie neuves être déplacé dans le code <ital>

<script language="JavaScript">
function afficheMaxi(chemin)
	{

	i1 = new Image();
	i1.src = chemin;

	html = '<HTML><HEAD><TITLE>Ton Titre de page</TITLE></HEAD><BODY LEFTMARGIN=0 MARGINWIDTH=0 TOPMARGIN=5 MARGINHEIGHT=0 body bgcolor="#4D5B88"><CENTER><IMG SRC="'+chemin+'" BORDER=0 NAME=imageTest onLoad="window.resizeTo(document.imageTest.width+24,document.imageTest.height+40)"></CENTER></BODY></HTML>';
	popupImage = window.open('','_blank','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=0,resizable=0, width=500, height=375, left=250, top=125');
	popupImage.document.open();
	popupImage.document.write(html);
	popupImage.document.close()
	}
</script> 
<body>
</body>
</html></ital>
Jocker - 27 sept. 2010 à 14:59
Ce n'est pas du JAVA mais bien du JavaScript
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour ce réponses j'ai déjà quelques résultats.
Ajouter un commentaire
Réponse
-1
moins plus
Merci pour ta réponse mais avec ton script j'ai un souci : ma grande image je ne l'ai pas dans popup.html. C'est normal car je ne lui dis pas qu'elle doit y etre. Mais comme j'ai 14 images je ne vais pas créer 14 pages popup.html. De plus j'aimerais qu'il ny ai pas de marges or avec cette manière il y en a.

HELP PLEASE !!!

Merci d'avance :)
Ajouter un commentaire
Ce document intitulé « Ouvrir une popup en cliquant sur une image » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?