Avatar billede Slettet bruger
30. august 2002 - 16:30 Der er 6 kommentarer og
2 løsninger

Åben vindue med billedets størrelse

Hej

Jeg har et lavet et site hvor brugere bla. kan uploade et billede af dem selv til deres profil. Der vises så et mindre "thumbnail" som man kan klikke på - hvorefter billedet i dets rigtige størrelse vises.

Billedet åbnes i et vindue (Javascript - se kode nedenfor) - problemet er, at den åbner først vinduet i 100*100% af skærmen for dernæst at reducere vinduet til den størrelse som billedet har. Det betyder at der kommer et hvidt blink som er noget irriterende. Kan man undgå det ved at modificere koden?

Thumb kode:
<a href="java script:popup('<%=brugerid%>.jpg','<%=brugernavn%>')"><img src="brugerpics/<%=brugerid%>.jpg"></a>

KODE START:-----------------------
function popup(filNavn,brugernavn) {
imageWin=window.open("", "imageWin", filNavn, "width=100,height=100");
imageWin.document.open();
imageWin.document.write(
'<html>'+
'<head>'+
'<title>' + brugernavn + '</title>'+
'<\script language="JavaScript">'+
'self.focus();'+
'function myResize() {'+
'picW = document.images["pic"].width;'+
'picH = document.images["pic"].height;'+
'picW = picW+10;'+
'picH = picH+37;'+

'if(picW > screen.availWidth)'+
'{'+
'picW = screen.availWidth'+
'}'+
'if(picH > screen.availHeight)'+
'{'+
'picH = screen.availHeight'+
'}'+

'window.resizeTo(picW,picH);'+
'}'+
'<\/script>'+
'</head>'+
'<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="myResize();">'+

'<DIV STYLE="width: 100%; height: 100%; overflow: auto;">'+

'<img src="brugerpics/' + filNavn + '" NAME="pic">'+

'</DIV>'+

'</body>'+
'</html>' );
imageWin.document.close();
}
KODE SLUT:-----------------------


PS:
'picW = picW+10;'+
'picH = picH+37;'+
er for at undgå scrollbarerne i IE! (Sikkert en lame udførelse)
Avatar billede lequet Nybegynder
30. august 2002 - 16:49 #1
Sådan her skulle jeg mene

function popup(filNavn,brugernavn) {

picW = document.images["pic"].width;
picH = document.images["pic"].height;
picW = picW+10;
picH = picH+37;

if(picW > screen.availWidth)
{
picW = screen.availWidth
}
if(picH > screen.availHeight)
{
picH = screen.availHeight
}

imageWin=window.open("", "imageWin", filNavn, "width=" + picW + ",height=" + picH);

imageWin.document.open();

imageWin.document.write(
'<html>'+
'<head>'+
'<title>' + brugernavn + '</title>'+
'<\script language="JavaScript">'+
'self.focus();'+
'<\/script>'+
'</head>'+
'<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="myResize();">'+

'<DIV STYLE="width: 100%; height: 100%; overflow: auto;">'+

'<img src="brugerpics/' + filNavn + '" NAME="pic">'+

'</DIV>'+

'</body>'+
'</html>' );
imageWin.document.close();
}
Avatar billede Slettet bruger
30. august 2002 - 16:57 #2
Virker ikke:

'document.images.pic.width' er nulleller ikke et objekt
Avatar billede lequet Nybegynder
30. august 2002 - 17:06 #3
Nåe ja, skod :( Jeg tror du bliver nødt til at leve med det blink når den tilpasser vinduets størrelse, ellers er du nok nødt til på en eller anden måde at placere billedet på samme side som åbner vinduet, ellers kan den ikke få fat i height og width for billedet før vinduet er åbnet og billedet loadet. Lidt latterligt, men du kunne måske sætte en display : none ; på billedet, sådan her

<img src="billede.gif" name="pic" style="display : none ;">

Så kan det ikke ses af brugeren, men jeg vil tro at javascript så kan finde størrelsen af det. Om det er en god løsning er jeg knapt så sikker på :(
Avatar billede Slettet bruger
31. august 2002 - 13:17 #4
Vha. et server-side sprog kan du aflæse dimensionerne på billedet.
Dem kan du så printe ud til et ganske traditionelt popup-script:

<script>
function popup(url, navn, b, h) {
window.open(url, navn, "width=" + b + ",height=" + h);
}
</script>

Kaldes med:

<a href="#" onClick="popup('stort_billede.jpg', 'popNavn', 200, 300); return false;"><img src="thumb.jpg" border="0"></a>

200 = Bredden på billedet, udskrevet server-side
300 = Højden              -||-
Avatar billede Slettet bruger
01. september 2002 - 14:55 #5
phoenixv > Det har jeg vist desværre ikke mulighed for i dette tilfælde
Avatar billede pelkjaer Nybegynder
01. september 2002 - 14:56 #6
Jeg ved jakoba har lavet noget der funker - tjek hans side.
Avatar billede Slettet bruger
01. september 2002 - 15:07 #7
Avatar billede Slettet bruger
01. september 2002 - 15:55 #8
Fandt ud af det...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester