Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
// Permet de zoomer une image ("thumb" ou galerie) au survol de la souris ou au focus du clavier// Documentation : [[Discussion utilisateur:Dr Brains/ZoomOnThumb.js]]// [[Catégorie:MediaWiki:Fonction Monobook en JavaScript]]//<source lang=javascript>//<pre><nowiki>////////////////////////////////////////////////////////////// VARIABLES PERSONNALISABLES ////////////////////////////////////////////// Images thumb simples ////// délai en millisecondesif(typeof(ZoomOnThumb_TimeOut)=="undefined")varZoomOnThumb_TimeOut=50;// multiplicateur de grossissement maxif(typeof(ZoomOnThumb_MaxMultiplicator)=="undefined")varZoomOnThumb_MaxMultiplicator=3;//// Images galeries ////// délai en millisecondesif(typeof(ZoomOnGallery_TimeOut)=="undefined")varZoomOnGallery_TimeOut=50;// multiplicateur de grossissement maxif(typeof(ZoomOnGallery_MaxMultiplicator)=="undefined")varZoomOnGallery_MaxMultiplicator=3;////////////////////////////////////////////////////////////// FONCTIONS //////////////////////////////////////////// --------------------------------------------------- THUMB ----------------------------------------------------------------------/* VARIABLES */varZoomOnThumb_LinkOnImage=newArray();// Liste des liens "image"varZoomOnThumb_LinkOnImageState=newArray();// État de zoom : 1 = zoom avant, -1 = zoom arrière, 0 = taille normalevarZoomOnThumb_LinkOnImageOriginalWidth=newArray();// Largeur originale de l'imagevarZoomOnThumb_LinkOnImageOriginalHeight=newArray();// Hauteur originale de l'imagevarZoomOnThumb_LinkOnImageOriginalTarget=newArray();// Cible originale de l'image (basse résolution)varZoomOnThumb_LinkOnImageZoomedTarget=newArray();// Cible zoomée de l'image (haute résolution)/* LANCEMENT */$(ZoomOnThumb_CheckLinks);/* ÉTABLISSEMENT DE LA LISTE DES LIENS "IMAGE" */functionZoomOnThumb_CheckLinks(){varDivs=document.getElementsByTagName('div');for(vara=0;a<Divs.length;a++){if(typeofhasClass!=='undefined'&&hasClass(Divs[a],"thumbinner")){varDivThumb=Divs[a];varLinks=DivThumb.getElementsByTagName('a');varLinkOnImage=Links[0];while(LinkOnImage.className!="image"){LinkOnImage=LinkOnImage.nextSibling;if(!LinkOnImage)break;}if(LinkOnImage)ZoomOnThumb_LinkOnImage.push(LinkOnImage);}}ZoomOnThumb_ModifyLinks();}/* TRANSFORMATION DES LIENS, MISE A JOUR VARIABLES */functionZoomOnThumb_ModifyLinks(){for(varb=0;b<ZoomOnThumb_LinkOnImage.length;b++){varThisLink=ZoomOnThumb_LinkOnImage[b];ThisLink.id="ZoomLink_"+b;ThisLink.onmouseover=function(){varID=parseInt(this.id.split('ZoomLink_').join(''));ZoomOnThumb_LinkOnImageState[ID]=1;ZoomOnThumb_ReplaceSrc(ID);ZoomOnThumb_ZoomIn(ID);}ThisLink.onfocus=function(){varID=parseInt(this.id.split('ZoomLink_').join(''));ZoomOnThumb_LinkOnImageState[ID]=1;ZoomOnThumb_ReplaceSrc(ID);ZoomOnThumb_ZoomIn(ID);}ThisLink.onmouseout=function(){varID=parseInt(this.id.split('ZoomLink_').join(''));ZoomOnThumb_LinkOnImageState[ID]=-1;ZoomOnThumb_ZoomOut(ID);}ThisLink.onblur=function(){varID=parseInt(this.id.split('ZoomLink_').join(''));ZoomOnThumb_LinkOnImageState[ID]=-1;ZoomOnThumb_ZoomOut(ID);}varThisDiv=ThisLink.parentNode;ThisDiv.id="ZoomDiv_"+b;varThisImage=ThisLink.getElementsByTagName('img')[0];ThisImage.id="ZoomImage_"+b;ZoomOnThumb_LinkOnImageOriginalWidth[b]=ThisImage.width;ZoomOnThumb_LinkOnImageOriginalHeight[b]=ThisImage.height;ZoomOnThumb_LinkOnImageOriginalTarget[b]=ThisImage.src;ZoomOnThumb_LinkOnImageState[b]=0;}}/* ZOOM AVANT */functionZoomOnThumb_ZoomIn(ID){if(ZoomOnThumb_LinkOnImageState[ID]!=1)return;varImage=document.getElementById('ZoomImage_'+ID);varDiv=document.getElementById('ZoomDiv_'+ID);if((!Image)||(!Div))return;varImageWidth=parseInt(Image.width);varImageHeight=parseInt(Image.height);if(ImageWidth<(ZoomOnThumb_LinkOnImageOriginalWidth[ID]*ZoomOnThumb_MaxMultiplicator)){varNewImageWidth=parseInt(ImageWidth*1.05);varNewImageHeight=parseInt(ImageHeight*1.05);if(NewImageWidth>(ZoomOnThumb_LinkOnImageOriginalWidth[ID]*ZoomOnThumb_MaxMultiplicator))ZoomOnThumb_LinkOnImageState[ID]=0;Image.width=NewImageWidth;Image.height=NewImageHeight;Div.style.width=(2+NewImageWidth)+'px';setTimeout("ZoomOnThumb_ZoomIn("+ID+");",ZoomOnThumb_TimeOut);}}/* ZOOM ARRIÈRE */functionZoomOnThumb_ZoomOut(ID){if(ZoomOnThumb_LinkOnImageState[ID]!=-1)return;varImage=document.getElementById('ZoomImage_'+ID);varDiv=document.getElementById('ZoomDiv_'+ID);if((!Image)||(!Div))return;varImageWidth=parseInt(Image.width);varImageHeight=parseInt(Image.height);if(ImageWidth>ZoomOnThumb_LinkOnImageOriginalWidth[ID]){varNewImageWidth=parseInt(ImageWidth*0.8);varNewImageHeight=parseInt(ImageHeight*0.8);if(NewImageWidth<ZoomOnThumb_LinkOnImageOriginalWidth[ID]){NewImageWidth=ZoomOnThumb_LinkOnImageOriginalWidth[ID];NewImageHeight=ZoomOnThumb_LinkOnImageOriginalHeight[ID];Image.src=ZoomOnThumb_LinkOnImageOriginalTarget[ID];ZoomOnThumb_LinkOnImageState[ID]=0;}Image.width=NewImageWidth;Image.height=NewImageHeight;Div.style.width=(2+NewImageWidth)+'px';setTimeout("ZoomOnThumb_ZoomOut("+ID+");",ZoomOnThumb_TimeOut);}}/* RECHERCHE CIBLE DE L'IMAGE EN HAUTE RÉSOLUTION */functionZoomOnThumb_ReplaceSrc(ID){varImage=document.getElementById('ZoomImage_'+ID);varLink=document.getElementById('ZoomLink_'+ID);if((!Image)||(!Link))return;if(ZoomOnThumb_LinkOnImageZoomedTarget[ID]){Image.src=ZoomOnThumb_LinkOnImageZoomedTarget[ID];return;}varCible=wgFormattedNamespaces[6]+':'+Link.href.split(wgFormattedNamespaces[6]+':')[1];varWikitextNewImage='[['+Cible+'|thumb|'+(ZoomOnThumb_LinkOnImageOriginalWidth[ID]*ZoomOnThumb_MaxMultiplicator)+'px]]';varAdresseRequete=wgServer+'/w/api.php?action=parse&text='+WikitextNewImage;varNouvelleRequete=sajax_init_object();NouvelleRequete.open("GET",AdresseRequete,true);NouvelleRequete.onreadystatechange=function(){if(NouvelleRequete.readyState!=4||NouvelleRequete.status!=200)return;varElementTraitement=document.createElement('div');ElementTraitement.innerHTML=NouvelleRequete.responseText;varInformations=ElementTraitement.getElementsByTagName('pre')[0];varLink=Informations.getElementsByTagName('a')[0];if(Link){varNewSrcImage=Link.href.replace(/"$/g,"");ZoomOnThumb_LinkOnImageZoomedTarget[ID]=NewSrcImage;if(ZoomOnThumb_LinkOnImageState[ID]!=1)return;Image.src=NewSrcImage;}}NouvelleRequete.send(null);}// --------------------------------------------------- GALERIES ----------------------------------------------------------------------/* VARIABLES */varZoomOnGallery_LinkOnImage=newArray();// Liste des liens "image"varZoomOnGallery_LinkOnImageState=newArray();// État de zoom : 1 = zoom avant, -1 = zoom arrière, 0 = taille normalevarZoomOnGallery_LinkOnImageOriginalWidth=newArray();// Largeur originale de l'imagevarZoomOnGallery_LinkOnImageOriginalHeight=newArray();// Hauteur originale de l'imagevarZoomOnGallery_LinkOnImageOriginalTarget=newArray();// Cible originale de l'image (basse résolution)varZoomOnGallery_LinkOnImageZoomedTarget=newArray();// Cible zoomée de l'image (haute résolution)/* LANCEMENT */$(ZoomOnGallery_CheckLinks);/* ÉTABLISSEMENT DE LA LISTE DES LIENS "IMAGE" */functionZoomOnGallery_CheckLinks(){varDivs=document.getElementsByTagName('div');for(vara=0;a<Divs.length;a++){if(typeofhasClass!=='undefined'&&hasClass(Divs[a],"gallerybox")){varDivGallery=Divs[a];varLinks=DivGallery.getElementsByTagName('a');varLinkOnImage=Links[0];while(LinkOnImage.className!="image"){LinkOnImage=LinkOnImage.nextSibling;if(!LinkOnImage)break;}if(LinkOnImage)ZoomOnGallery_LinkOnImage.push(LinkOnImage);}}ZoomOnGallery_ModifyLinks();}/* TRANSFORMATION DES LIENS, MISE A JOUR VARIABLES */functionZoomOnGallery_ModifyLinks(){for(varb=0;b<ZoomOnGallery_LinkOnImage.length;b++){varThisLink=ZoomOnGallery_LinkOnImage[b];ThisLink.id="ZoomLink_"+(b+1000);ThisLink.onmouseover=function(){varID=parseInt(this.id.split('ZoomLink_').join(''));ZoomOnGallery_LinkOnImageState[ID]=1;ZoomOnGallery_ReplaceSrc(ID);ZoomOnGallery_ZoomIn(ID);}ThisLink.onfocus=function(){varID=parseInt(this.id.split('ZoomLink_').join(''));ZoomOnGallery_LinkOnImageState[ID]=1;ZoomOnGallery_ReplaceSrc(ID);ZoomOnGallery_ZoomIn(ID);}ThisLink.onmouseout=function(){varID=parseInt(this.id.split('ZoomLink_').join(''));ZoomOnGallery_LinkOnImageState[ID]=-1;ZoomOnGallery_ZoomOut(ID);}ThisLink.onblur=function(){varID=parseInt(this.id.split('ZoomLink_').join(''));ZoomOnGallery_LinkOnImageState[ID]=-1;ZoomOnGallery_ZoomOut(ID);}varThisDiv=ThisLink.parentNode;ThisDiv.id="ZoomDiv_"+(b+1000);varThisThumb=ThisDiv.parentNode;ThisThumb.id="ZoomThumb_"+(b+1000);varThisGalleryBox=ThisThumb.parentNode;ThisGalleryBox.id="ZoomGalleryBox_"+(b+1000);varThisImage=ThisLink.getElementsByTagName('img')[0];ThisImage.id="ZoomImage_"+(b+1000);ZoomOnGallery_LinkOnImageOriginalWidth[(b+1000)]=ThisImage.width;ZoomOnGallery_LinkOnImageOriginalHeight[(b+1000)]=ThisImage.height;ZoomOnGallery_LinkOnImageOriginalTarget[(b+1000)]=ThisImage.src;ZoomOnGallery_LinkOnImageState[(b+1000)]=0;}}/* ZOOM AVANT */functionZoomOnGallery_ZoomIn(ID){if(ZoomOnGallery_LinkOnImageState[ID]!=1)return;varImage=document.getElementById('ZoomImage_'+ID);varDiv=document.getElementById('ZoomDiv_'+ID);varThumb=document.getElementById('ZoomThumb_'+ID);varGalleryBox=document.getElementById('ZoomGalleryBox_'+ID);if((!Image)||(!Div)||(!Thumb)||(!GalleryBox))return;varImageWidth=parseInt(Image.width);varImageHeight=parseInt(Image.height);varMaxWidth=(parseInt(ZoomOnGallery_LinkOnImageOriginalWidth[ID])*parseInt(ZoomOnGallery_MaxMultiplicator));if(ImageWidth<MaxWidth){varNewImageWidth=parseInt(ImageWidth*1.05);varNewImageHeight=parseInt(ImageHeight*1.05);if(NewImageWidth>MaxWidth)ZoomOnGallery_LinkOnImageState[ID]=0;Image.width=NewImageWidth;Image.height=NewImageHeight;Div.style.width=NewImageWidth+'px';Thumb.style.width=(NewImageWidth+30)+'px';GalleryBox.style.width=(NewImageWidth+35)+'px';setTimeout("ZoomOnGallery_ZoomIn("+ID+");",ZoomOnGallery_TimeOut);}}/* ZOOM ARRIÈRE */functionZoomOnGallery_ZoomOut(ID){if(ZoomOnGallery_LinkOnImageState[ID]!=-1)return;varImage=document.getElementById('ZoomImage_'+ID);varDiv=document.getElementById('ZoomDiv_'+ID);varThumb=document.getElementById('ZoomThumb_'+ID);varGalleryBox=document.getElementById('ZoomGalleryBox_'+ID);if((!Image)||(!Div)||(!Thumb)||(!GalleryBox))return;varImageWidth=parseInt(Image.width);varImageHeight=parseInt(Image.height);varMinWidth=ZoomOnGallery_LinkOnImageOriginalWidth[ID];if(ImageWidth>MinWidth){varNewImageWidth=parseInt(ImageWidth*0.8);varNewImageHeight=parseInt(ImageHeight*0.8);if(NewImageWidth<MinWidth){NewImageWidth=ZoomOnGallery_LinkOnImageOriginalWidth[ID];NewImageHeight=ZoomOnGallery_LinkOnImageOriginalHeight[ID];Image.src=ZoomOnGallery_LinkOnImageOriginalTarget[ID];ZoomOnGallery_LinkOnImageState[ID]=0;}Image.width=NewImageWidth;Image.height=NewImageHeight;Div.style.width=NewImageWidth+'px';Thumb.style.width=(NewImageWidth+30)+'px';GalleryBox.style.width=(NewImageWidth+35)+'px';setTimeout("ZoomOnGallery_ZoomOut("+ID+");",ZoomOnGallery_TimeOut);}}/* RECHERCHE CIBLE DE L'IMAGE EN HAUTE RÉSOLUTION */functionZoomOnGallery_ReplaceSrc(ID){varImage=document.getElementById('ZoomImage_'+ID);varLink=document.getElementById('ZoomLink_'+ID);if((!Image)||(!Link))return;if(ZoomOnGallery_LinkOnImageZoomedTarget[ID]){Image.src=ZoomOnGallery_LinkOnImageZoomedTarget[ID];return;}varCible=wgFormattedNamespaces[6]+':'+Link.href.split(wgFormattedNamespaces[6]+':')[1];varWikitextNewImage='[['+Cible+'|thumb|'+(ZoomOnGallery_LinkOnImageOriginalWidth[ID]*ZoomOnGallery_MaxMultiplicator)+'px]]';varAdresseRequete=wgServer+'/w/api.php?action=parse&text='+WikitextNewImage;varNouvelleRequete=sajax_init_object();NouvelleRequete.open("GET",AdresseRequete,true);NouvelleRequete.onreadystatechange=function(){if(NouvelleRequete.readyState!=4||NouvelleRequete.status!=200)return;varElementTraitement=document.createElement('div');ElementTraitement.innerHTML=NouvelleRequete.responseText;varInformations=ElementTraitement.getElementsByTagName('pre')[0];varLink=Informations.getElementsByTagName('a')[0];if(Link){varNewSrcImage=Link.href.replace(/"$/g,"");ZoomOnGallery_LinkOnImageZoomedTarget[ID]=NewSrcImage;if(ZoomOnGallery_LinkOnImageState[ID]!=1)return;Image.src=NewSrcImage;}}NouvelleRequete.send(null);}//</nowiki></pre></source>