14. januar 2005 - 11:26Der er
9 kommentarer og 1 løsning
Popup's bredde der afhæner af billedets højde
Jeg vil lave en popup der altid har en højde på 450 og kan indeholde billeder som har forskellige højder og bredder, og det kan gøres ved at angiver forholdet mellem billedets højde og bredde og så ganger det med 450 a la (billedeB / billedeH) * 450
Jeg har prøvet at lave det, men det er svært for mig som ingen erfaringer har angående JavaScript. Kan nogen her hjælpe mig med koden? Min kode er således:
<script type="text/javascript"> Function Popup(Billedeid) {
Ved ikke om det kan hjælpe dig, men prøv og leg lidt med den der:
<script>
// Script Source: CodeLifter.com // Copyright 2003 // Do not remove this notice.
// SETUPS: // ===============================
// Set the horizontal and vertical position for the popup
PositionX = 100; PositionY = 100;
// Set these value approximately 20 pixels greater than the // size of the largest image to be used (needed for Netscape)
defaultWidth = 500; defaultHeight = 500;
// Set autoclose true to have the window close automatically // Set autoclose false to allow multiple popup windows
var AutoClose = true;
// Do not edit below this line... // ================================ if (parseInt(navigator.appVersion.charAt(0))>=4){ var isNN=(navigator.appName=="Netscape")?1:0; var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;} var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY; var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY; function popImage(imageURL,imageTitle){ if (isNN){imgWin=window.open('about:blank','',optNN);} if (isIE){imgWin=window.open('about:blank','',optIE);} with (imgWin.document){ writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>'); writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){'); writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}'); writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);'); writeln('width=100-(document.body.clientWidth-document.images[0].width);'); writeln('height=100-(document.body.clientHeight-document.images[0].height);'); writeln('window.resizeTo(width,height);}');writeln('if (isNN){'); writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].height;}}'); writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>'); if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">') else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">'); writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>'); close(); }}
Det er en kode som (så vildt jeg kan se i koden) resizer vinduen EFTER det er poppet frem - er det da ikke muligt at angiver bredden FØR det bliver poppet frem? Er der da nogle glat med min kode eller?
Mange tak skal du ha', thomas!! Det virker helt fint, MEN... jeg har to forskellige billeder, en i thumbs-størrelse, som hedder 2.jpg og en i big-sized som hedder 2-big.jpg... så "this" commanden virker vist ikke rigtig - hvordan gør jeg det?
Prefekt! Det virker prefekt og glidesfrit - så jeg skal bare tilføje forskellen mellem Netscape og Explorer, og det gør jeg senere, det vigtigste er at det virker - mange tak for hjælpen!
Hvis du skal lave det lidt mere sexet så tilføj denne linje efter pop.documenent.close(); pop.focus();
Synes godt om
Ny brugerNybegynder
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.