Avatar billede iziqio Nybegynder
27. august 2005 - 13:48 Der er 16 kommentarer og
1 løsning

JavaScript til indlæsning af billed ?

Hej Alle

Jeg kan simpelthen ikke finde et script til at tjekke om en billed fil eksisterer.
Det skal være sådan at den prøver at hente billedet indtil det kommer frem. Jeg har nemlig et program der kører i baggrunden som laver mit billed, men det tar normal 15 sek før det er færdigt, og derfor vil jeg gerne have noget ligesom "loading..." eller noget stående iemns man "venter" på billedet bliver genereret - nu virker det sådan at man logger ind så genereres billedet og så kan man trykke F5 efter de ca 15 sek og se billedet.

Hvis det er et svært spørgsmål så skriv det lige (Så kommer der flere point)
Avatar billede jakobdo Ekspert
27. august 2005 - 15:15 #1
Prøv at kig her: http://eksperten.dk/spm/342548
Avatar billede iziqio Nybegynder
28. august 2005 - 14:11 #2
Mange tak, det ser godt ud. Men jeg kan ikke få det sidste til at virke. Altså den load bar..

<div style="position: absolute; left: 0px; top: 200px; width: 100%; text-align: center;">
<div style="width: 280px; height: 20px; background-image: url('din_baggrund.gif');">
<div id="loadbar" style="width: 0%; height: 20px; background-image: url('din_baggrund.gif'); text-align: left; font-size: 0px;">&nbsp;</div>
</div>
</div>

Hvorfor virker det ikke?
Avatar billede iziqio Nybegynder
28. august 2005 - 14:11 #3
Der sker ikke noget i den.
Avatar billede iziqio Nybegynder
28. august 2005 - 14:14 #4
Den kan også bare være mig der ikke kan lurre hvordan man styrer det der baggrundsbilled - skal det være 280 gange 20 px ?
Avatar billede jakobdo Ekspert
28. august 2005 - 14:17 #5
Har ikke testet løsningen selv, så jeg kan ikke hjælpe meget mere.
Dog fandt jeg også nogle løsninger på denne side:
http://www.dynamicdrive.com/dynamicindex4/index.html
Søg på preload.
Avatar billede iziqio Nybegynder
28. august 2005 - 15:36 #6
Jeg kan ikke bruge den første løsning for den er sikker på at billedet er der og det ser ud til at man skal bruge en load funkion f.eks fordi at billedet fylder meget. Det jeg søger er en funktion der bliver ved med at hente et billed indtil det kommer frem og evt. i mellemtiden viser et eller andet. f.eks "Henter billed".
Avatar billede jakobdo Ekspert
28. august 2005 - 15:45 #7
Det kan du da bare skrive i teksten i stedet for: please be...
Avatar billede iziqio Nybegynder
28. august 2005 - 16:25 #8
nej for som jeg sagde er filen måske ikke tilstede når man har hentet siden - måske kommer billedet 30 sek efter siden er færdig hentet.
Avatar billede iziqio Nybegynder
28. august 2005 - 16:26 #9
Derfor er det lidt tricky. Det må være noget med at man skal hente billedet indtil det har en værdi. eller noget
Avatar billede jakobdo Ekspert
28. august 2005 - 16:44 #10
Det er jo netop det scriptet sørger for.
Den tjekker om billedet er loadet færdigt.
Når billedet er det, så viser den siden!
Er det ikke det du ønsket?
Altså et script som SIGER: BILLEDE LOADER, VENLIGST VENT.
Når alle billeder er loadet viser den siden?
Avatar billede iziqio Nybegynder
28. august 2005 - 19:15 #11
så vidt jeg kan se / teste - virke det ikke når filen først bliver tilgængelig 3 0sek efter at siden er indlæst. Den bliver ved med at hente billiedet indtil at det er tilgægeligt ! Men det vises ikke på siden når det kommer frem.
Avatar billede jakobdo Ekspert
28. august 2005 - 19:27 #12
Jeg giver op!
Avatar billede iziqio Nybegynder
28. august 2005 - 19:31 #13
kan det passe at når jeg tester det på min egen pc virker det og når jeg uploader det til en hjemmeside på nettet, indlæser det ikke billederne ?
Har du nogen ide til forklaring på det?
Avatar billede jakobdo Ekspert
28. august 2005 - 19:38 #14
Ikke rigtigt!
Lokalt går loadtid muligvis hurtigere, da det jo ikke skal hentes via dit modem/bredbånd!
Avatar billede iziqio Nybegynder
28. august 2005 - 19:50 #15
html koden er:

<script>
bill = new Array("billede1.jpg", "billede2.jpg", "billede3.jpg"); //Billederne, der skal preloades

i = 0;
slut = 0;
provigen = 0;
pb = new Array();

function preload()
{
    //alert ("Trin: preload " + i);
   
      pb[i] = new Image();
      pb[i].src = bill[i];

    setTimeout("tjek();", 1000);
      //tjek();


}

function tjek()
{
      //alert ("Trin: tjek " + i);
   
    x = i;
   
  if (pb[i].complete)
  {
    document.getElementById("loadbar").style.width = Math.round(++i / bill.length * 100) + "%";
   
    if (i == bill.length)
    {
        if(provigen == 1)
        {
            self.location.href = "index.htm"; //Siden, der skal redirectes til
        }
     
      alert ("Trin: slut " + i);
      slut = 1;
      return;
    }

      if(slut != 1)
      {
         
        preload();
       
      }
 
  }
  else
  {
      i = x;
    slut = 0;
    pb = new Array();
    preload();
    provigen = 1;
  }
 
}
</script>

<body onLoad="preload();">

<div style="position: absolute; left: 0px; top: 200px; width: 100%; text-align: center;">
  <div style="width: 280px; height: 20px; background-image: url('din_baggrund.gif');">
    <div id="loadbar" style="width: 0%; height: 20px; background-image: url('din_baggrund.gif'); text-align: left; font-size: 0px;">&nbsp;</div>
  </div>
</div>
<p>1. <img src="billede1.jpg" width="28" height="20">
2. <img src="billede2.jpg" width="28" height="20">
3. <img src="billede3.jpg" width="28" height="20"></p>
<p>
  <input type="text" name="textfield">
</p>
<p>&nbsp;</p>
Avatar billede iziqio Nybegynder
28. august 2005 - 19:51 #16
Her er hele koden. Jeg forstår ikke hvorfor den virker lokalt men ikke via nettet. Kan du/i se nogen fejl?
Avatar billede iziqio Nybegynder
08. december 2005 - 09:13 #17
lukker
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