Fenetre adaptée a la taille de la photo
stophes
-
txiki Messages postés 6514 Date d'inscription Statut Contributeur Dernière intervention -
txiki Messages postés 6514 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir,
J'ai un site et j'aimerai que mes photos en miniatures s'ouvrent (qd je clic dessus) en grande mais dans une fenetre qui s'adapte a la taille de la photo.
J'ai deja vu ca sur d'autre site et j'aimerai faire la meme chose.
Merci d'avance
Stophes
J'ai un site et j'aimerai que mes photos en miniatures s'ouvrent (qd je clic dessus) en grande mais dans une fenetre qui s'adapte a la taille de la photo.
J'ai deja vu ca sur d'autre site et j'aimerai faire la meme chose.
Merci d'avance
Stophes
A voir également:
- Fenetre adaptée a la taille de la photo
- Comment réduire la taille d'un fichier - Guide
- Google photo - Télécharger - Albums photo
- Comment reduire la taille d'une photo - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Photo aérienne de ma maison - Guide
2 réponses
Salut stophes,
Voici un script qui permet de le faire: (enregistre le dans un fichier en .js)
Ensuite, mettre ça dans le head (quand on crée le fichier cidessus à part)
Puis pour le lien (vignette):
Attention avec le commentaire car s'il est trop long, ça va laisser une partie blanche en plus de la photo (voir dans la barre de titre de la pop up de ta photo).
Le border="0" c'est pour enlever la bordure bleue des liens dans une image.
voir un exemple sur mon site: http://abarka.free.fr rubrique "diaporama"
N'oublie pas de créer également une image pour la fermeture de la fenetre.
Bonne chance....
Voici un script qui permet de le faire: (enregistre le dans un fichier en .js)
<!-- redirection des liens image jpg. Michel Deboom 05/2005
// Création de la pseudo-popup :
fe='<div id="pop" style="position:absolute;left:180px;top:300px;display:none;z-index:200;background-color:#FFFFFF;border:3px outset;'
//ajoute une ombre pour IE seulement
fe+='filter:progid:DXImageTransform.Microsoft.Shadow(direction=135,color=#63421b,strength=6)">'
fe+='<div id="tet" onmousedown="dx=px-gdim.offsetLeft;dy=py-gdim.offsetTop;drag=1;" onmouseup="drag=0" style="cursor:move;background-color:#267726;line-height:18px;color:white;font-size:12px;padding:0 20px 0 .5em;font-family:Verdana, Helvetica, Arial;">'
fe+='entête<img title=" Fermer " src="../images/fermer.gif" onclick="voirSelect(\'visible\');gdim.style.display=\'none\'" height="14" width="16"'
fe+='style="cursor:default;position:absolute;margin:1px;right:0;top:0; " /></div></div>'
function initLienImg(){
db=!D.documentElement.clientWidth?D.body:D.documentElement //quirk IE6
gdim=D.getElementById('pop'); lx=D.getElementById('tet')
addEvent(D,"mousemove",controle_position)
elem=document.getElementsByTagName('select');
//création de l'image
im1=D.createElement("img");gdim.appendChild(im1);
with(im1.style){border=0;margin="1px";}
//écriture des évènements
l=D.getElementsByTagName('a');
for(var i=0;i<l.length;++i){
//ajoute onclick=grdimg dans liens image avec extention .jpg ou .JPG
result=l[i].href.search(/jpg$|JPG$/);
if(result!=-1){l[i].onclick=grdimg;}
}
}
function controle_position(e){
sx=gk?pageXOffset:db.scrollLeft; //scroll h
sy=gk?pageYOffset:db.scrollTop; //scroll v
px=gk?e.pageX:event.clientX+sx; //curseur x
py=gk?e.pageY:event.clientY+sy; //curseur y
if(drag)with(gdim.style){left=px-dx+"px";top=py-dy+"px";}
return false
}
//Renvoi image et title dans le calque.
function grdimg(){
fx=gk?innerWidth-20:db.clientWidth //l fenêtre
fy=gk?innerHeight:db.clientHeight //h fenêtre
//charge l'image dans le cache du navigateur.
im=new Image();im.src=this.href;
//l'affiche en grandeur réduite repositionnée.
with(gdim.style){display="block";top=sy+2+'px'};
with(im1){src=im.src;width=height=100};
if(!cr)cr=gdim.offsetHeight-127;
if(gk)im1.style.marginBottom=-cr+"px";//correction Gecko
//montre le message d'attente.
lx.firstChild.data="patientez svp";
//colore le lien comme visité, récupère le message title
this.style.color=D.vlinkColor;txt=this.title;
//Lance le controle de chargement
actif=setTimeout('controleChargement()',100)
//désactive l'action normale du lien HTML
;return false
}
//controle du chargement de l'image
function controleChargement(){
//éxécute imgOK quand c'est terminé
im.complete?imgOK():
//sinon relance le contrôle toutes les 100 ms
actif=setTimeout('controleChargement()',100)
}
function imgOK(){ // image chargée.
clearTimeout(actif);lx.firstChild.data=txt;
//L'image ne dépasse pas la fenêtre:
if(im.width>=fx){im.height*=(fx-20)/im.width;im.width=fx-20;}
if(im.height>=fy){im.width*=(fy-30)/im.height;im.height=fy-30;}
//applique les dimensions recalculées à l'image.
im1.width=im.width;im1.height=im.height;
voirSelect('hidden')
}
// bug ie corrigé : cache les <select>
function voirSelect(v){
if(!gk){for(i=0;i<elem.length;i++)elem[i].style.visibility=v;}
}
function addEvent(obj,evType,fn,capt){ // ajoute un événement sans écraser l'éxistant.
if(obj.addEventListener){obj.addEventListener(evType,fn,capt);return true;} // NS6+
else if(obj.attachEvent)obj.attachEvent("on"+evType,fn) // IE 5+
else {return false;}
}
// initialisation
D=document;gk=window.Event?1:0/*Gecko*/;
dx=dy=e=drag=cr=0
addEvent(window,"load",initLienImg)
D.write(fe)
//-->
Ensuite, mettre ça dans le head (quand on crée le fichier cidessus à part)
<script language="javascript" src="../mon_dossier/g_img.js" type="text/javascript"></script>
Puis pour le lien (vignette):
<a href="mon_dossier/ma_photo.jpg" title="ton commentaire"><img src="mon_dossier_vignettes/ma_photo_vignette.jpg" alt="mon_commentaire" border="0" /></a>
Attention avec le commentaire car s'il est trop long, ça va laisser une partie blanche en plus de la photo (voir dans la barre de titre de la pop up de ta photo).
Le border="0" c'est pour enlever la bordure bleue des liens dans une image.
voir un exemple sur mon site: http://abarka.free.fr rubrique "diaporama"
N'oublie pas de créer également une image pour la fermeture de la fenetre.
Bonne chance....
Quand tu dis enregistrer en .js tu veux dire ne .jps?
Dois -je retranscrire tt ce que tu m'as donné a l'identique en changeant seulement le nom et l'endroit de la photo au début du prog?
Merci