Avatar billede Boddicker Seniormester
08. januar 2000 - 23:06 Der er 7 kommentarer og
1 løsning

Endnu et onmouseover spørgsmål

Problemet skulle egentlig give sig selv. Tjek: http://www.johncarpenter.dk/problem.html

Det virker fint i IE, men ikke i NS. NS må IKKE preloade billederne!!

Koden ser sådan her ud:

<html>
<head>

<script language="JavaScript">
<!--
// Find browser Netscape 3+ eller IE 4 +.
bName = navigator.appName;
bVer = parseInt(navigator.appVersion);
    if (bName == "Netscape" && bVer >= 3) {
        br = "n3";
    }
    else if (bName == "Microsoft Internet Explorer" && bVer >= 4) {
        br = "e3";
        img1on = new Image();
        img1on.src = "grafik/nyhedervalg.gif";
        img2on = new Image();
        img2on.src = "grafik/releaselistevalg.gif";
    }
    else {
        br = "n2";
    }
// Lav objekter og preload billeder.
    if ((br == "n3") || (br == "e3")) {
        img1off = new Image();
        img1off.src = "grafik/nyheder.gif";
        img2off = new Image();
        img2off.src = "grafik/releaseliste.gif";
    }
   
// Aktiver billeder.
function imgAct(imgName) {
    if (br == "n3") {
        document[imgName].src = "grafik/nyhedervalg.gif";
    }
    else if (br == "e3") {
        document[imgName].src = eval(imgName + "on.src");
    }
}
// Deaktiver billeder.
function imgInact(imgName) {
    if ((br == "n3") || (br = "e3")) {
    document[imgName].src = eval(imgName + "off.src");
    }

}
// -->
</script>

<title>Problem</title>
</head>
<a href="nyheder.html" onmouseover="imgAct('img1'), window.status='Nyheder'; return true" onmouseout="imgInact('img1'), window.status=''; return true">
                      <img src="grafik/nyheder.gif" border="0" name="img1"></a>

                    <div align="center"><a href="releaseliste.html" onmouseover="imgAct('img2'), window.status='Releaseliste'; return true" onmouseout="imgInact('img2'), window.status=''; return true">
                      <img src="grafik/releaseliste.gif" border="0" name="img2"></a>


</div></body></html>
Avatar billede olebole Juniormester
08. januar 2000 - 23:33 #1
// Lav objekter og preload billeder.
    if (br == "e3") {
        img1off = new Image();
        img1off.src = "grafik/nyheder.gif";
        img2off = new Image();
        img2off.src = "grafik/releaseliste.gif";
    }
Så skulle den være der.
/VH
Ole Clausen
Avatar billede olebole Juniormester
08. januar 2000 - 23:38 #2
Og så har du vel egentlig ikke noget at bruge dette til:
        img1on = new Image();
        img1on.src = "grafik/nyhedervalg.gif";
        img2on = new Image();
        img2on.src = "grafik/releaselistevalg.gif";
da disse billeder ikke figurerer, og du alligevel preloader til IE længere nede.
Avatar billede baunsgaard Nybegynder
08. januar 2000 - 23:44 #3
olebole>> "Off"-billederne må gerne preloades, da de ikke indeholder animationer, jvf. tidligere spg. så dit svar er desværre ikke helt rigtigt!
auggie>> Vi får "snakket" sammen nogle gange i dag...

Der er også den fejl af grafikstien står hardcoded i imgAct funktionen. Prøv noget lignende det nedenstående. Jeg har desværre ikke testet det i NS, da den maskine er lukket ned, hvis du ikke virker må du lige sige til - så skal jeg nok ordne det gratis, det er ikke for at score point jeg kommer til at lave fejl :-)

<script language="JavaScript">
<!--
var img1onName, img2onName;
// Find browser Netscape 3+ eller IE 4 +.
bName = navigator.appName;
bVer = parseInt(navigator.appVersion);
    if (bName == "Netscape" && bVer >= 3) {
        br = "n3";
        img1onName = "grafik/nyhedervalg.gif";
        img2onName = "grafik/releaselistevalg.gif";
    }
    else if (bName == "Microsoft Internet Explorer" && bVer >= 4) {
        br = "e3";
        img1on = new Image();
        img1on.src = "grafik/nyhedervalg.gif";
        img2on = new Image();
        img2on.src = "grafik/releaselistevalg.gif";
    }
    else {
        br = "n2";
    }
// Lav objekter og preload billeder.
    if ((br == "n3") || (br == "e3")) {
        img1off = new Image();
        img1off.src = "grafik/nyheder.gif";
        img2off = new Image();
        img2off.src = "grafik/releaseliste.gif";
    }
   
// Aktiver billeder.
function imgAct(imgName) {
    if (br == "n3") {
        document[imgName].src = eval(imgName + "onName");
    }
    else if (br == "e3") {
        document[imgName].src = eval(imgName + "on.src");
    }
}
// Deaktiver billeder.
function imgInact(imgName) {
    if ((br == "n3") || (br = "e3")) {
    document[imgName].src = eval(imgName + "off.src");
    }

}
// -->
</script>

Mvh
Avatar billede olebole Juniormester
08. januar 2000 - 23:50 #4
Vrøvl!!! ;-)
BRB!
Avatar billede olebole Juniormester
08. januar 2000 - 23:55 #5
Rolig, baunsgaard - kommentaren var til mit eget svar.
Dit ser rigtigt ud…det gælder om at kunne læse rigtigt ;-)
Avatar billede Boddicker Seniormester
09. januar 2000 - 00:03 #6
Once again: Thanx a bunch!
Avatar billede freeweb Nybegynder
09. januar 2000 - 00:13 #7
Forstår jeg problemet rigtigt, så er det, at billedet eller animationen først bliver loadet første gang man laver en onmouseover med en større forsinkelse tilfølge.
Hvad med at lægge et billedkald ind sidst i filen:
<IMG SRC="on.gif" BORDER="0" WIDTH="0" HEIGHT="0" ALIGN="BOTTOM" ALT="">, hvor width og height altså er sat til 0. Så bliver det ikke vist, men er klar til onmouseoveren.
Det virker i IE.
Avatar billede olebole Juniormester
09. januar 2000 - 01:04 #8
Men ikke i NN…der skal den loades ind i samme størrelse, for det virker. Men du kan loade den i en skjult frame (<frameset rows="100%,*">), og derefter bruge den det tiltænkte sted.
DEN er i hvert fald bombe sikker!
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