Problème paramétrage popup image javascript

cs_roya Messages postés 3 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 3 mai 2004 - 2 mai 2004 à 00:30
cs_roya Messages postés 3 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 3 mai 2004 - 3 mai 2004 à 08:00
Bon g voulu faire un script ki ouvre une image dans une popup (de la taille de l'image) en cliquant sur une vignette !

ça marche mais g des images plus larges que mon écran des fois (genre 1500 pixels) alors g voulu faire en sorte que pour celles-ci le popup soit de 800pixels de large avec une scrollbar

encore une foi ça marche mais une fois sur, enfin ça marche la deuxièm fois kon clic sur la vignette ! le premier coup le popup fait la taille de l'écran donc po cool ! si quelqu1 pourrait maider pour ke ça marche du 1er coup

voila le script

<SCRIPT LANGUAGE= "JavaScript">
function afficheVignette(cheminVignette,cheminMaxi)
{
document.write('[javascript:afficheMaxi(\''+cheminMaxi+'\') ]');
}
function afficheMaxi(chemin)
{
image = new Image;
image.src = chemin;
if(image.width > 800){
largeur = 800;
scrollage = 1;
hauteur = image.height+17;

}
else{
largeur = image.width;
hauteur = image.height;
scrollage = 0
}
html = '<HTML><HEAD><TITLE>Image</TITLE></HEAD> <CENTER></CENTER> </HTML>';
popupImage  = window.open('','','width='+largeur+',height='+hauteur+',toolbar=0,location=0,directories=0,menuBar=0,scrollbars='+scrollage+',resizable=0');
popupImage.document.open();
popupImage.document.write(html);
popupImage.document.close()
};
</SCRIPT>


et pour voir mon problème plus concrètement voila la page avec les vignettes
http://graffitidatabase.free.fr/persos1.htm

merci d'avance

4 réponses

chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
2 mai 2004 à 16:05
Les dimensions de l'image arbitraires au départ(400X400) ne sont connus qu'en fin de chargement dans le onload de la popup. :

function afficheMaxi(chemin)
{
image = new Image();
image.src = chemin;
html = '<HTML><HEAD><TITLE>Image</TITLE></HEAD> <CENTER>=800?800+'px':i.width;window.resizeTo(l,i.height);moveTo(0,0)"></CENTER> </HTML>';
popupImage = window.open('','','width=400+"px",height=400+"px"');
popupImage.document.open();
popupImage.document.write(html);
popupImage.document.close();
popupImage.focus();
};
0
cs_roya Messages postés 3 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 3 mai 2004
2 mai 2004 à 18:41
salut !! merci pour ta solution mais ça ne fonctionnait pas très bien et je n'ai pas réussi à comprendre pourquoi d'aileurs

sinon j'ai un peu changer mon code et ça donne ça maintenant

<script type= "text/javascript">

var LargeurMax = 800;
var HauteurMax = 600;

function afficheVignette(cheminVignette, cheminMaxi) {
document.write('[javascript:afficheMaxi(\''+cheminMaxi+'\') ]');
}

function afficheMaxi(chemin) {
var image = new Image;
image.src = chemin;
var largeur   = image.width;
var hauteur   = image.height+17;
var scrollage = 0;
if(largeur > LargeurMax) {
largeur   = LargeurMax;
scrollage = 1;
}
if(hauteur > HauteurMax) {
hauteur   = HauteurMax;
scrollage = 1;
}
var posX = (screen.width-largeur)/2;
var posY = (screen.height-hauteur)/2;
html = '<html><head><title>'+chemin+'</title></head> <center></center> </html>';
popupImage  = window.open('', '', 'width='+largeur+',height='+hauteur+',toolbar=0,location=0,directories=0,menuBar=0,scrollbars='+scrollage+',resizable=0');
popupImage.document.open();
popupImage.document.write(html);
popupImage.document.close()
}

</script>


ça marche mais pas au 1er clic cette fois-ci sur les images de moins de 800 pixels il faut cliquer une deuxième fois ...

aaaaaaaaargh je m'en sortirais jamais

si vous êtes inspirés pour voir ce ke ça donne

http://graffitidatabase.free.fr/couleur1.htm

merci
0
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
3 mai 2004 à 00:59
J'avait pas essayé. Voilà la fonction corrigée :
function afficheMaxi(chemin)
{
image = new Image();
image.src = chemin;
html = '<HTML><HEAD><TITLE>Image</TITLE></HEAD>=lmax){h=(lmax/l)*h;l=lmax};if(h>=hmax)h=hmax;window.resizeTo(l,h);moveTo((lmax-l)/2,0)"></HTML>';
popupImage = window.open('','','width=200+"px",scrollbars,resizable');
popupImage.document.open();
popupImage.document.write(html);
popupImage.document.close();
};
Pourquoi tu n'utilise pas un calque plutot ? ça pose moins de problèmes. Tu peut essayer mon source "lien images.."
http://moncastel.9online.fr/gimg.htm
J'ai pas prévu les images plus grandes que la fenêtre, ni le centrage mais si ça interresse, je le corrigerai, yaka demander
0
cs_roya Messages postés 3 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 3 mai 2004
3 mai 2004 à 08:00
merci pour ton aide ça fonctionne !! :big)
0
Rejoignez-nous