Avatar billede dudesicko Novice
26. august 2007 - 12:15 Der er 11 kommentarer og
1 løsning

Popup af billed i center

Jeg har fundet det her script, det er perfekt, meeen det er lige det at billedet skulle helst gerne poppe i center af skærmen, og på min bærbar er den næsten helt ude for skærmen?

http://www.sitepoint.com/article/resize-popup-fit-images-size

Hvordan laver man det lige så den centrerer når den popper?
Avatar billede w13 Novice
26. august 2007 - 12:31 #1
Kan vi ikke se din popupkode. Hvis vi følger linket, skal vi selv sætte koden sammen.

Normalt kan man gøre det med:

var iWidth=200;
var iHeight=200;
window.open("popup.htm?"+sPicURL,"","resizable=1,HEIGHT="+iHeight+",WIDTH="+iWidth+",TOP="+(Screen.Height-iHeight)/2+",LEFT="+(Screen.Width-iWidth)/2);

..eller noget i den stil i hvert fald :P
Avatar billede dudesicko Novice
26. august 2007 - 12:40 #2
Jo da, men troede bare linket var nok, da det stortset er en kopi direkte derfra :D

Fil der har billedet i som skal poppe:

<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="style-red.css" />

<script language="Javascript">
  function PopupPic(sPicURL) {
    window.open( "popup.asp?"+sPicURL, "", 
    "resizable=1,HEIGHT=200,WIDTH=200");
  }
</script>

</head>

<body style="background-color: #F6EFE0; background-image: url('images/bg.jpg'); background-attachment: fixed">


<table style="width: 90%; height: 90%" cellspacing="0" cellpadding="0" align="center">
    <tr>
        <td valign="top"><a href="java script:PopupPic('images/side_01.jpg')">
        <img alt="" src="images/side_04-c.jpg" width="73" height="73" /></a>
        </td>
    </tr>
</table>

</body>


Filen der har det poppende billede i:
<aspL>
    <HEAD>
        <TITLE>Tilpas Billede</TITLE>
       
<script language='javascript'>
            var temp=self.location.href.split("?");
            var picUrl = (temp.length>1)?temp[1]:"";
            var NS = (navigator.appName=="Netscape")?true:false;

            function fitPic() {
                iWidth = (NS)?window.innerWidth:document.body.clientWidth;
                iHeight = (NS)?window.innerHeight:document.body.clientHeight;
                iWidth = document.images[0].width - iWidth;
                iHeight = document.images[0].height - iHeight;
                window.resizeBy(iWidth, iHeight-1);
                self.focus();
            };
        </script>
    </HEAD>
    <BODY bgcolor="#FFFFFF" onload='fitPic();' topmargin="0" marginheight="0" leftmargin="0" marginwidth="0">
        <script language='javascript'>
            document.write( "<img src='" +picUrl +"' border=0>" );
        </script>

    </BODY>
</aspL>
Avatar billede w13 Novice
26. august 2007 - 13:12 #3
Godt, jamen så skulle din script-kode bare være:

<script language="Javascript">
function PopupPic(sPicURL) {
  var iWidth=200;
  var iHeight=200;
  window.open("popup.htm?"+sPicURL,"","resizable=1,HEIGHT="+iHeight+",WIDTH="+iWidth+",TOP="+(Screen.Height-iHeight)/2+",LEFT="+(Screen.Width-iWidth)/2);
}
</script>
Avatar billede dudesicko Novice
26. august 2007 - 13:22 #4
Hmm den popper ikke op i midten. Men helt oppe i venstre hjørne, hvilket også er fint, er bedre end den er helt uden for skærmen hehe

Men prøvede så lige i IE, den kommer med en fejl hvilket FireFox ikke gør.
Error: 'Screen' is undefined.

Og selvfølgelig så ikke nogen pop, hvilket den også siger med min oprindelig kode, så det har ikke noget med det du har lavet at gøre :D

Men du har opfyldt din del, så smid lige et svar :)
Avatar billede olebole Juniormester
26. august 2007 - 14:46 #5
<ole>

Nu er JavaScript jo case-sensitive, så mon ikke, det ville hjælpe at skrive 'Screen' med småt: screen.width og screen.height - samt height, width, left og top  ;o)

I øvrigt tager screen.availWidth og screen.availHeight hensyn til evt. system-ting - herunder taskbar'en, der som regel ligger i bunden af skærmen.

<script language="Javascript">
function PopupPic(sPicURL) {
  var iWidth=200;
  var iHeight=200;
  window.open("popup.htm?"+sPicURL,"","resizable=1,height="+iHeight+",width="+iWidth+",top="+(screen.availHeight-iHeight)/2+",left="+(screen.AvailWidth-iWidth)/2);
}
</script>

- virker uden tvivl  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
26. august 2007 - 14:52 #6
- og "Nu er JavaScript jo case-sensitive" er åbenbart en sandhed med modifikationer! FF synes ikke at understøtte JavaScript korrekt på dette punkt.
Hvis udviklingen hos MS og Mozilla fortsætter, ender vi om få år med en IE, der overholder standarderne - og en FF, der er værre end IE på sit værste tidspunkt  :)
Avatar billede dudesicko Novice
26. august 2007 - 15:03 #7
Yeah nu smider den det enda i center og det hele, og ingen problemer i IE :D

Takker mange gange :)
Avatar billede dudesicko Novice
26. august 2007 - 17:23 #8
Smid lige et svar, så jeg kan lukke plz :D
Avatar billede olebole Juniormester
26. august 2007 - 21:03 #9
Det må vist være dig, w13  ;o)
Avatar billede w13 Novice
27. august 2007 - 00:08 #10
Er du med på en deler, Ole? =)
Avatar billede dudesicko Novice
29. august 2007 - 19:45 #11
Nå men jeg lukker, regner ikke med Ole kigger ind igen.
Avatar billede w13 Novice
29. august 2007 - 19:46 #12
Takker! ^^
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