1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
<!-- redirection des liens image jpg. Michel Deboom 04/2005
// Création de la pseudo-popup :
fe='<div id="pop" style="position:absolute;border:1px solid orange;left:3px;top:3px;display:none;z-index:200;background-color:#FFF;'
//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:orange;line-height:18px;color:white;font-size:12px;padding:0 20px 0 .5em;font-family:cursive;">'
fe+='p<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)
//--> |
Partager