Problème paramétrage popup image javascript

Signaler
Messages postés
3
Date d'inscription
samedi 1 mai 2004
Statut
Membre
Dernière intervention
3 mai 2004
-
Messages postés
3
Date d'inscription
samedi 1 mai 2004
Statut
Membre
Dernière intervention
3 mai 2004
-
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

Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005

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();
};
Messages postés
3
Date d'inscription
samedi 1 mai 2004
Statut
Membre
Dernière intervention
3 mai 2004

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
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005

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
Messages postés
3
Date d'inscription
samedi 1 mai 2004
Statut
Membre
Dernière intervention
3 mai 2004

merci pour ton aide ça fonctionne !! :big)