Avatar billede fætterguf Nybegynder
13. juli 2000 - 17:03 Der er 7 kommentarer og
1 løsning

Vente på billede

Hvordan kan jeg få denne funktion til at vente på et billedet som den skal bruge (eventpic)?

Funktionen skal resize et pop-up vindue til størrelsen på billedet, der loades i det, og samtidig tage højde for om parametret er user eller admin, men den resizer først når billedet er cachet og siden reloades igen.



function ImgSize(modeIs){

var ImgH
var ImgW


    if (document.images) {
        if (document.images.length == 1) {

        ImgH = document.images.EventPic.height
        ImgW = document.images.EventPic.width

              if (modeIs == 'admin') {

                  if (ImgW < 500) {
                      ImgW = 500;
                  }
                  if (ImgH < 65) {
                      ImgH = 65;
                  }
                  ImgH = ImgH+32;
              }

              else if (modeIs == 'user') {
                ImgH = document.EventPic.height
                ImgW = document.EventPic.width
              }

        if (document.layers) eval(resizeTo(ImgW, ImgH));
        else if (document.all) eval(resizeTo(ImgW+12, ImgH+31));
    }
    else if (modeIs == 'admin')    ImgSize('admin');
    else if (modeIs == 'user')    ImgSize('user');
    }
}



Jeg har prøvet med

<script language="JavaScript">
EventPic = new Image();
EventPic.src = "billede.jpg"
</script>


...i headeren, men det virker ikke.

Jeg har skrevet ind i funktionen, at hvis ikke "document.images.length == 1" skal den gentage sig selv, men det virker vist ikke.

Avatar billede lp Nybegynder
13. juli 2000 - 17:07 #1
du kan evt. preloade billeder. det må være den bedste løsning.....du kan evt. preloade dem på siden forinden den popupside............tjek dette spm. som besvarer det perfekt:

http://www.eksperten.dk/spm.asp?id=16586

/LP
Avatar billede fætterguf Nybegynder
13. juli 2000 - 17:09 #2
Jeg har prøvet at preloade ......det står også nederst i mit spørgsmål:

<script language="JavaScript">
EventPic = new Image();
EventPic.src = "billede.jpg"
</script>


....men det virker ikke, og det er ikke muligt at preloade billedet i en anden side. Der er ca. 200 at vælge i mellem.....så det holder ikke.
Avatar billede lp Nybegynder
13. juli 2000 - 17:12 #3
har du prøvet olebole's løsning, den er ret god :-) det kan aldrig skade at prøve det :-)

et sidste shot fra mig ville være at du loadede en ny side i framen....altså ikke en popup, som preloadede og derefter onload poppede den nye side på.....du kan så bede (ved hjælp af location) popupvinduet om at få den anden side til at gå tilbage igen...history.go(-1).......jeg ved den er lidt bøvlet, men i mangel på bedre....

/LP
Avatar billede fætterguf Nybegynder
15. juli 2000 - 12:34 #4
Jo, det kan skade :-)  hvis jeg skal bruge den er jeg nødt til at preloade alle 200 billeder.....og det holder ikke......og din version med at loade i en anden frame er også for usikker. Selvom billedet har været loadet én gang kan du ikke være sikker på at den tager det fra cachen på en anden side. Det SKAL være på samme side der checkes for, om billedet er loadet.
Avatar billede fætterguf Nybegynder
08. august 2000 - 11:42 #5
Lukket
Avatar billede olebole Juniormester
08. august 2000 - 18:37 #6
Fandt du nogensinde en løsning, fætter?
/Vh
Avatar billede fætterguf Nybegynder
09. august 2000 - 12:50 #7
Jeg flikkede lidt sammen, men jeg er ikke helt sikker på at den er stabil:

<Script>
function ImgSize(modeIs){

var ImgH
var ImgW


    if (document.images) {
        if (document.images[\'EventPic\'] ? true : false) {

        ImgH = document.images.EventPic.height
        ImgW = document.images.EventPic.width

              if (modeIs == \'admin\') {

                  if (ImgW < 500) {
                      ImgW = 500;
                  }
                  if (ImgH < 65) {
                      ImgH = 65;
                  }
                  ImgH = ImgH+32;
              }

              else if (modeIs == \'user\') {
                ImgH = document.EventPic.height
                ImgW = document.EventPic.width
              }

        if (document.layers) eval(resizeTo(ImgW, ImgH));
        else if (document.all) eval(resizeTo(ImgW+12, ImgH+31));
    }
    else if (modeIs == \'admin\')    setTimeout(\'ImgSize(\"admin\")\',500);
    else if (modeIs == \'user\')    setTimeout(\'ImgSize(\"user\")\',500);
    }
}

<%
If Session(\"Admin\") <> 1 Then
Response.Write \"setTimeout(\'ImgSize(\"\"user\"\")\',500)\"&CHR(10)&CHR(10)
Else
Response.Write \"setTimeout(\'ImgSize(\"\"admin\"\")\',500)\"&CHR(10)&CHR(10)
End if
%>

</Script>

...som du er kan se er der to funktioner og lidt ASP, men det kan du nok finde ud af at pille fra hvis du skal bruge det.
Avatar billede fætterguf Nybegynder
09. august 2000 - 12:51 #8
Den tester også på størrelsen og resizer vinduet....men det kan du jo læse dig til.
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