Avatar billede mikkel.jor Nybegynder
08. januar 2001 - 20:26 Der er 20 kommentarer og
2 løsninger

OnMouseOver menu

Hejsa

Hvad er der galt her ?
*************************<script language=\"JavaScript\">\"
<!--
if (document.images) {

  img1on = new Image();
  img1on.src = \"../images/knap/forside2.gif\";
  img1off = new Image();
  img1off.src = \"../images/knap/forside2.gif\";

  img2on = new Image();
  img2on.src = \"../images/knap/produkt2.gif\";
  img2off = new Image();
  img2off.src = \"../images/knap/produkt2.gif\";

  img3on = new Image();
  img3on.src = \"../images/knap/profil2.gif\";
  img3off = new Image();
  img3off.src = \"../images/knap/profil2.gif\";

  img4on = new Image();
  img4on.src = \"../images/knap/kontakt2.gif\";
  img4off = new Image();
  img4off.src = \"../images/knap/kontakt2.gif\";

}

function swapImg() {
  if (document.Img) {
    for (var i=0; i<swapImg.arguments.length; i+=2) {
    document[swapImg.arguments[i]].src = eval(swapImg.arguments[i+1] + \".src\");
    }
  }
}

// -->
</script>
***************************
Avatar billede steven Nybegynder
08. januar 2001 - 21:03 #1
Hej Mikkel.jor

Prøv med følgende istedet:

<script language=\"JavaScript\">
<!--
  img1on = new Image();
  img1on.src = \"../images/knap/forside2.gif\";
  img1off = new Image();
  img1off.src = \"../images/knap/forside2.gif\";

  img2on = new Image();
  img2on.src = \"../images/knap/produkt2.gif\";
  img2off = new Image();
  img2off.src = \"../images/knap/produkt2.gif\";

  img3on = new Image();
  img3on.src = \"../images/knap/profil2.gif\";
  img3off = new Image();
  img3off.src = \"../images/knap/profil2.gif\";

  img4on = new Image();
  img4on.src = \"../images/knap/kontakt2.gif\";
  img4off = new Image();
  img4off.src = \"../images/knap/kontakt2.gif\";

function swap(navn,billede){
    if (document.images){
                document [navn].src = eval(billede + \".src\");   
    }
}

function normal(navn,billede){
    if (document.images){
        document [navn].src = eval(billede + \".src\");   
    }
}
// -->
</script>


/Steven
Avatar billede steven Nybegynder
08. januar 2001 - 21:06 #2
Du skal skrive følgende ved dit billede:

<img src\"../images/knap/forside2.gif\" name=\"img1\" onMouseover=\"swap(\'img1\',\'img1on\')\" onMouseout=\"normal(\'img1\',\'img1off\')\">

/Steven
Avatar billede steven Nybegynder
08. januar 2001 - 21:08 #3
Når du har lavet disse ændringer til dit script skal du huske at de billeder der skal byttes ud (swap) ikke må hedde det samme som det billede der er der i forvejen. I øjeblikket er img1on = img1off!

/Steven

PS. det var vist alt
Avatar billede jakoba Nybegynder
08. januar 2001 - 21:10 #4
Og det vil nok hjælpe hvis du bruger forskellige billedfiler til on og off.
Ellers er der ikke meget fidus ved at switche billeder :-))

mvh JakobA
Avatar billede jakoba Nybegynder
08. januar 2001 - 21:13 #5
Men for at bidrage med noget reelt:
Der er ingen grund til at preloade off billederne. De loader sammen med siden, og så slipper du for at bruge ram til at lagre dem i memory. de bliver alligevel reloaded fra cashe når der er brug for dem.
Avatar billede steven Nybegynder
08. januar 2001 - 21:22 #6
Hej jakoba

de indledende linier fortæller hvilke variable/billeder der bruges i scriptet, og disse skal være for at kunne kalde billedet frem senere. Hvordan vil du ellers skifte tilbage til det gamle billede ved onMouseout ???

/Steven
Avatar billede jakoba Nybegynder
08. januar 2001 - 21:48 #7
Som nedenfor, for eksempel.
Du behøver ikke gemme andet end filnavnet for off billederne.

<script language=\"JavaScript\">
<!--
img1on = new Image();
img1on.src = \"../images/knap/forside2.gif\";
img1off = \"../images/knap/forside2.gif\";

img2on = new Image();
img2on.src = \"../images/knap/produkt2.gif\";
img2off = \"../images/knap/produkt2.gif\";

img3on = new Image();
img3on.src = \"../images/knap/profil2.gif\";
img3off = \"../images/knap/profil2.gif\";

img4on = new Image();
img4on.src = \"../images/knap/kontakt2.gif\";
img4off = \"../images/knap/kontakt2.gif\";

function swap(navn,billede){
    if (document.images){
        document[navn].src = eval(billede + \".src\");   
    }
};

function normal(navn,billede){
    if (document.images){
        document[navn].src = billede;   
    }
}
// -->
</script>

Det sparer også den der eval(...) i normal() functionen. eval() er dyr i memory management.

mvh JakobA
Avatar billede steven Nybegynder
08. januar 2001 - 21:51 #8
OK, den køber jeg!

/Steven
Avatar billede steven Nybegynder
08. januar 2001 - 21:52 #9
Du kan desværre ikke få nogle points af mig, da jeg ikke har oprettet spørgsmålet! ;-)

/Steven
Avatar billede jakoba Nybegynder
08. januar 2001 - 21:54 #10
Næ. det var jeg for hurtig. billede indeholder jo navnet på en variabel.

function normal(navn,billede){
    if (document.images){
        document[navn].src = eval(billede);   
    }
}
Avatar billede jakoba Nybegynder
08. januar 2001 - 21:57 #11
Eller måske ikke. Nu er jeg pludselig i tvivl. eval eller ej?

steven >> Allenfals er det dit svar. Jeg blandede mig bare.
Avatar billede steven Nybegynder
08. januar 2001 - 21:59 #12
Hej JakobA

Jeg synes det skal være eval! ;-)

/Steven
Avatar billede mikkel.jor Nybegynder
08. januar 2001 - 22:06 #13
steven -> tak for dit første svar, desværre virker den kode heller ikke, hvis i vil se hvor det bliver brugt så kig her http://www.marj.dk/beta/ stien til billederne er rigtig nok
Avatar billede steven Nybegynder
08. januar 2001 - 22:10 #14
Hej Mikkel.jor

Du har skrevet:
<a href=\"\" onMouseOver=\"swapImg(\'img1\', \'img1on\')\" onMouseOut=\"swapImg(\'img1\', \'img1off\')\"><img name=\"img1\" src=\"../images/knap/forside.gif\" border=0></a>

Men det skal ændres til:
<img name=\"img1\" src=\"../images/knap/forside.gif\" border=0 onMouseOver=\"swapImg(\'img1\', \'img1on\')\" onMouseOut=\"swapImg(\'img1\', \'img1off\')\">

/steven
Avatar billede jakoba Nybegynder
08. januar 2001 - 22:12 #15
http://www.marj.dk/images/  påstår at der ikke findes noget direktorie med det navn.

det burde der.

mvh JakobA
Avatar billede mikkel.jor Nybegynder
08. januar 2001 - 22:13 #16
Avatar billede steven Nybegynder
08. januar 2001 - 22:14 #17
Hej Mikkel.jor

Jeg har testet linket til billederne, og der ligger ikke nogen billed der hvor linket peger. Hvilken mappe ligger billederne i (eksakt URL)?

/Steven
Avatar billede mikkel.jor Nybegynder
08. januar 2001 - 22:15 #18
ups sorry glemte at til kanpperne var det http://www.marj.dk/beta/images/knap
Avatar billede steven Nybegynder
08. januar 2001 - 22:18 #19
Hej igen,

Du skal ændre til:

<img name=\"img1\" src=\"/images/knap/forside.gif\" border=0 onMouseOver=\"swapImg(\'img1\', \'img1on\')\" onMouseOut=\"swapImg(\'img1\', \'img1off\')\">

/Steven
Avatar billede jakoba Nybegynder
08. januar 2001 - 22:29 #20
steven 08/01 2001 22:10:55 >> Nej. der har mikkel.jor ret. der skal blot ændres i URLen til billedet ifølge den nye placering. og så navnene på swap-funktionerne

<a href=\"\" onMouseOver=\"swap(\'img1\', \'img1on\')\"
              onMouseOut=\"normal(\'img1\', \'img1off\')\"><img name=\"img1\"
    src=\"images/knap/forside.gif\" border=0></a>
Avatar billede steven Nybegynder
08. januar 2001 - 22:32 #21
Jeg bryder mig ikke om at bruge <a> til noget som <img> klarer fint selv (mere skrivearbejde!)

/Steven
Avatar billede jakoba Nybegynder
08. januar 2001 - 22:40 #22
1) det skal såvidt jeg forstår ende med at billederne skal virke som links. så der kommer <a> omkring alligevel.
2) Selvom Internet Explorer kan lave mouseover på billeder, så er der ikke mange andre browsere der kan. Alle kan lave mouseover på links.
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