Avatar billede henrik Nybegynder
28. november 1998 - 00:00 Der er 12 kommentarer og
1 løsning

Alle billeder skal loade før "Document Done", ved OnMouseOver-funktionen???

Hvordan sikre man alle billeder i en tabel til at loade færdig før "Document Done" , ved  OnMouseOver og OnClick- funktionerne???

Problemet er at billederne er ret "store", så hvis de ikke bliver loadet før funktionerne bliver brugt kommer de aldrig til syne!!!
??????????????????????????????????????????
Avatar billede jfl Nybegynder
01. december 1998 - 10:23 #1
Det gør du på følgende måde:

Du laver en ""for"" løkke, som læser de billeder ind som først vises mens/efter at musen har været over et link.

// Kode start

  LinkImages = new Array();
  GIFs = new Array (""freelance"",""jflwebcom"",""kontakt"",""referencer"",""produkter"");

for(N = 0; N <= 4; N++)
{
  LinkImages[N]    = new Image();
  LinkImages[N].src = ""grafik/"" + """" + GIFs[N] + "".gif"";
}

// Kode slut

Ovenstående kode læser de 5 billeder ""grafik/freelance.gif"", ""grafik/jflwebcom.gif"", ""grafik/kontakt.gif"", ""grafik/referencer.gif"" og ""grafik/produkter.gif"" ind i browserens hukommelse.

Skal der læses flere end de 5 billeder ind, sætter du resten ind i ""GIFs"" og retter ""N <= 4"" til antallet af billeder minus 1.


Ovenstående kode kan du sætte ind mellem <HEAD> </HEAD> således:

<HEAD>
<SCRIPT LANGUAGE=""JavaScript"">
<!-- kode fra http://www.eksperten.dk  --

BrowserCheck = (((navigator.appName == ""Netscape"") && (parseInt(navigator.appVersion) >= 3 )) || ((navigator.appName == ""Microsoft Internet Explorer"") && (parseInt(navigator.appVersion) >= 4 )))

if (BrowserCheck)
{
  LinkImages = new Array();
  GIFs = new Array (""freelance"",""jflwebcom"",""kontakt"",""referencer"",""produkter"");

  for(N = 0; N <= 4; N++)
  {
    LinkImages[N]    = new Image();
    LinkImages[N].src = ""grafik/"" + ""k_"" + GIFs[N] + ""_o.gif"";
  }
}

// End of script -->
</SCRIPT>
</HEAD>
Avatar billede henrik Nybegynder
01. december 1998 - 14:19 #2
Hvad gør BrowserCheck? Og hvornår skal jeg bruge det?
Avatar billede jfl Nybegynder
02. december 1998 - 10:21 #3
BrowserCheck kontrollerer at den Browser brugeren har understøtter at man via JavaScript henter billeder.
Avatar billede henrik Nybegynder
02. december 1998 - 15:14 #4
Jeg kan desværre stadig ikke få billederne til at forloade før OnMouseOver eller OnClick???  www.skateboarding.dk -> menu
Avatar billede henrik Nybegynder
02. december 1998 - 17:38 #5
Jeg kan desværre stadig ikke få billederne til at forloade før OnMouseOver eller OnClick??? Her er scriptet hvis det kan hjælpe:

<SCRIPT LANGUAGE=""JavaScript"">

<!-- (C) Frontsite  --
window.onerror=null;
window.defaultStatus = ""Programming by Henrik Roth  hra@skateboarding.dk"";

BrowserCheck = (((navigator.appName == ""Netscape"") && (parseInt(navigator.appVersion) >= 3 )) || ((navigator.appName == ""Microsoft Internet Explorer"") && (parseInt(navigator.appVersion) >= 4 )))
if (BrowserCheck)
{
  LinkImages = new Array();
  jpgs = new Array (""firma, firma_a, prod, prod_a, gaestebog, gaestebog_a, billeder, billeder_a, skateparks, skateparks_a, kontakt, kontakt_a, konkurrence, konkurrence_a, news, news_a"");
for(N = 0; N <= 15; N++)
      {
    LinkImages[N]    = new Image();
    LinkImages[N].src = ""knapper/"" + jpgs[N] + ""_a.jpg"";
  }
for(N = 16; N <= 30; N++)
  {
    LinkImages[N]    = new Image();
    LinkImages[N].src = ""knapper/"" + jpgs[N] + ""_a.jpg"";
  }
}
FirstTime = true;
CurrentImg = 0;
function FrontsiteShift (N,IMG)
{
  if (BrowserCheck)
  {
    if (N != CurrentImg)
        {
      document.images[N].src = ""knapper/"" + IMG + ""_a.jpg"";
      if (!FirstTime)
      document.images[CurrentImg].src = ""knapper/"" + IMGtemp + "".jpg"";
      CurrentImg = N;
      FirstTime = false;
          IMGtemp = IMG;
        }
  }
}
function FrontsiteShift2 (N,IMG)
{
  if (BrowserCheck)
  {
    if (N != CurrentImg)
        {
      document.images[N].src = ""knapper/"" + IMG;
        }
  }
}
// End of FrontsiteScript -->

</SCRIPT>
Avatar billede jfl Nybegynder
03. december 1998 - 09:11 #6
Der skal være "" omkring hvert billedes navn, og du behøver ikke at hente dem uden '_a' da de bliver hentet af HTML siden.

DVS:
  jpgs = new Array (""firma_a"", ""prod_a"", ""gaestebog_a"", ""billeder_a"", ""skateparks_a"",  ""kontakt_a"", ""konkurrence_a"", ""news_a"");

og så skal der kun være denne 'for' løkke:

for(N = 0; N <= 7; N++)
{
  LinkImages[N]    = new Image();
  LinkImages[N].src = ""knapper/"" + jpgs[N] + "".jpg"";
}
Avatar billede jfl Nybegynder
03. december 1998 - 09:33 #7
Vedr. onClick problemet:

Slet 'FirstTime = true;'
Det bruger du ikke.

Din 'FrontsiteShift' bør laves om til følgende:

CurrentImg = 0;
function FrontsiteShift (N,IMG)
{
  if (BrowserCheck)
  {
    if (N != CurrentImg)
        {
          document.images[N].src = ""knapper/"" + IMG + "".jpg"";
          document.images[CurrentImg].src = ""knapper/"" + IMGtemp + "".jpg"";
          CurrentImg = N;
          IMGtemp = IMG;
        }
  }
}

Jeg kan dog ikke se hvorfor du har den, da den vil hente det samme billede som HTML siden gør, eller det billede som hentes hvis musen er over knappen; Og så er vi jo lige vidt!
Du skal have et 3. billede, som du så kan bruge når man har klikket på knappen.

Dette henter du f.eks. således:
OnClick=""FrontsiteShift(4,'billeder_klik')"";
Avatar billede jfl Nybegynder
03. december 1998 - 09:36 #8
Billedet skal jo så hedde 'billeder_klik.jpg' og ligge i mappen 'knapper'.
Avatar billede henrik Nybegynder
03. december 1998 - 13:36 #9
1000 Tak for hjælpen! Nu virker det... 100 ""slask"" til dig & FrontsiteShift er blevet til JFL!
Avatar billede jfl Nybegynder
03. december 1998 - 13:57 #10
Det lyder godt! Mange tak!
Avatar billede thomas Nybegynder
08. december 1998 - 08:39 #11
jeg skulle mene at BrowserCheck funktionen ikke holder. Brug istedet

if (document.images) {
....

Her spørger du browseren om den understøtter billedmanipulation!
Det virker med alle browsere incl. mere obskure såsom opera!
Avatar billede henrik Nybegynder
08. december 1998 - 09:10 #12
Hmmmmm...... Hvad er nu det????
if (document.images) { ??????, Vil meget gerne høre lidt mere?
Avatar billede thomas Nybegynder
08. december 1998 - 09:21 #13
Istedet for at bruge BrowserCheck funktionen f.eks:


if (BrowserCheck)
  {
  if (N != CurrentImg)
        {
        document.images[N].src = ""knapper/"" + IMG + "".jpg"";
        document.images[CurrentImg].src = ""knapper/"" + IMGtemp + "".jpg"";
        CurrentImg = N;
        IMGtemp = IMG;
        }
  }
}

Så skift

if (BrowserCheck)

ud med

if (document.images)

og slet BrowserCheck funktionen, det er hurtigere og virker med flere browsere!
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