Avatar billede jjensen Juniormester
13. august 1999 - 00:40 Der er 4 kommentarer og
1 løsning

OnClick

Hej,

Jeg ønsker at lave en menu (Med OnMouseOver) der beholder et gif billede sålænge den tilsvarende html side bliver vist.

Dvs. hvis nogen trykker på en af knapperne skal den forblive samme gif som OnMouseOver, indtil der trykkes på en ny knap.

Kan det lade sig gøre i følgende kode?
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
  <title>Dmenu.</title>
</head>
<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0">
<script language="JavaScript">

<!--
// Find browser Netscape 3+ eller IE 4 +.
bName = navigator.appName;
bVer = parseInt(navigator.appVersion);
    if ((bName == "Netscape" && bVer >= 3) ||
        (bName == "Microsoft Internet Explorer" && bVer >= 4)) br = "n3";
    else br = "n2";
// Lav objekter og preload billeder.
    if (br== "n3") {
    img1on = new Image();
    img1on.src = "http://www.global-gateway.com/buttoms/onmouse/dhvadon.gif";
    img2on = new Image();
    img2on.src = "http://www.global-gateway.com/buttoms/onmouse/dtaksteron.gif";
    img3on = new Image();
    img3on.src = "http://www.global-gateway.com/buttoms/onmouse/dsparon.gif";
   
    img1off = new Image();
    img1off.src = "http://www.global-gateway.com/buttoms/dhvad.gif";
    img2off = new Image();
    img2off.src = "http://www.global-gateway.com/buttoms/dtakster.gif";
    img3off = new Image();
    img3off.src = "http://www.global-gateway.com/buttoms/dspar.gif";
            }
// Aktiver billeder.
function imgAct(imgName) {
    if (br == "n3") {
    document[imgName].src = eval(imgName + "on.src");
    }
}
// Deaktiver billeder.
function imgInact(imgName) {
    if (br == "n3") {
    document[imgName].src = eval(imgName + "off.src");
    }
}
// -->

</script>

<center><table BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<tr>
<td><a href="http://www.global-gateway.com/dhvad.htm" target="dskaerm.htm" onmouseover="imgAct('img1')" onmouseout="imgInact('img1')"><img SRC="http://www.global-gateway.com/buttoms/dhvad.gif" NAME="img1" ALT="Beskrivelse af vor Services..." BORDER=0 height=27 width=144></a></td>
</tr>

<tr>
<td><a href="http://www.global-gateway.com/drater.htm" target="dskaerm.htm" onmouseover="imgAct('img2')" onmouseout="imgInact('img2')"><img SRC="http://www.global-gateway.com/buttoms/dtakster.gif" NAME="img2" ALT="Sammenlign med andre udbydere..." BORDER=0 height=27 width=144></a></td>
</tr>

<tr>
<td><a href="http://www.global-gateway.com/dhotel.htm" target="dskaerm.htm" onmouseover="imgAct('img3')" onmouseout="imgInact('img3')"><img SRC="http://www.global-gateway.com/buttoms/dspar.gif" NAME="img3" ALT="Mange muligheder..." BORDER=0 height=27 width=144></a></td>
</tr>
</table></center>

</body>
</html>

Avatar billede dkkarpen Nybegynder
13. august 1999 - 08:07 #1
Du får lige koden:

i <HEAD>:

<SCRIPT>

img = new Image;

function changeImg(imgName, target) {
  img.src = imgName;
  document[target].src = img.src;
}

</SCRIPT>

hvor billedet skal være:

<a href="#" onClick="changeImg('click.gif', 'pic1')" onMouseover="changeImg('on.gif', 'pic1')" onMouseout="changeImg('off.gif', 'pic1')"><img src="off.gif"  name="pic1"></a><br>
<a href="#" onClick="changeImg('click.gif', 'pic2')" onMouseover="changeImg('on.gif', 'pic2')" onMouseout="changeImg('off.gif', 'pic2')"><img src="off.gif"  name="pic2"></a><br>
Avatar billede jjensen Juniormester
13. august 1999 - 09:16 #2
Jeg har prøvet lidt af hvert - jeg ved godt det virker som jeg er helt idiot, men har du mulighed for at "indbygge" det i koden ovenover?

Jeg har ikke kunnet få det til at virke - jeg er heller ikke sikker på hvad pic1 og pic2 skal være.......

Mvh,
John
Avatar billede dkkarpen Nybegynder
13. august 1999 - 09:30 #3
pic angiver bare at det billedet navngivet pic1 som skal benyttes. Som du kan navngive billederne efter src angivelsen f.eks. med pic1. Du skal altså ikke angive en billedfil der hvor f.eks. pic1 står nævnt men navngive billedefilerne (med name=""> så koden passer.

Start forfra med din kode. Lav evt. en kopi af den nuværende. Slet det javascript du har i hovedet og brug det som jeg har angivet.
Avatar billede jjensen Juniormester
13. august 1999 - 09:50 #4
Jeg har forsøgt at starte forfra, og kan godt få OnMouseOver til at virke - men OnClick lader ikke til at virke.....

Skal der noget andet til?

Behøver man at starte sit dokument med at teste for folks browsere ligesom i den oprindelige kode jeg lagde ud?



<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
  <meta name="Author" content="John Jensen">
  <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
<SCRIPT>
img = new Image;
function changeImg(imgName, target) {
img.src = imgName;
document[target].src = img.src;
}
</SCRIPT>
</head>
<body>
&nbsp;
</body>
</html>

<a href="http://www.global-gateway.com/dhvad.htm" target="dskaerm.htm" onClick="changeImg('http://www.global-gateway.com/buttoms/dhvad.gif', 'pic1')" onMouseover="changeImg('http://www.global-gateway.com/buttoms/onmouse/dhvadon.gif', 'pic1')"
onMouseout="changeImg('http://www.global-gateway.com/buttoms/dhvad.gif', 'pic1')"><img src="http://www.global-gateway.com/buttoms/dhvad.gif"  name="pic1"></a><br>
                         
<a href="http://www.global-gateway.com/drater.htm" target="dskaerm.htm" onClick="changeImg('http://www.global-gateway.com/buttoms/onmouse/dtaksteron.gif', 'pic2')" onMouseover="changeImg('http://www.global-gateway.com/buttoms/onmouse/dtaksteron.gif', 'pic2')"
onMouseout="changeImg('http://www.global-gateway.com/buttoms/dtakster.gif', 'pic2')"><img src="http://www.global-gateway.com/buttoms/dtakster.gif"  name="pic2"></a><br>
Avatar billede justincase Nybegynder
14. august 1999 - 13:53 #5
Du mangler en variabel der indikerer hvad der er trykket på. Du kan gøre det sådan her :

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta name="Author" content="John Jensen">
<meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
<SCRIPT>
var active = "";
img = new Image;
function changeImg(imgName, target) {
  if (document.images) {
    if (active != target || imgName.indexOf("on.") != -1) {
      img.src = imgName;
      document[target].src = img.src;
    }
  }
}

function setActive(imgName, target) {
  active = target;
  changeImg(imgName, target);
}
</SCRIPT>
</head>
<body>
<a href="http://www.global-gateway.com/dhvad.htm" target="dskaerm.htm" onClick="setActive('http://www.global-gateway.com/buttoms/dhvad.gif', 'pic1')" onMouseover="changeImg('http://www.global-gateway.com/buttoms/onmouse/dhvadon.gif', 'pic1')"
onMouseout="changeImg('http://www.global-gateway.com/buttoms/dhvad.gif', 'pic1')">
<img src="http://www.global-gateway.com/buttoms/dhvad.gif" name="pic1"> </a><br>
<a href="http://www.global-gateway.com/drater.htm" target="dskaerm.htm" onClick="setActive('http://www.global-gateway.com/buttoms/onmouse/dtaksteron.gif', 'pic2')" onMouseover="changeImg('http://www.global-gateway.com/buttoms/onmouse/dtaksteron.gif', 'pic2')"
onMouseout="changeImg('http://www.global-gateway.com/buttoms/dtakster.gif', 'pic2')">
<img src="changeImg('http://www.global-gateway.com/buttoms/dtakster.gif" name="pic2"> </a><br>
</body>
</html>


Og ja, du har brug for et check, men ikke for hvilken browser der bruges. Du kan bare tjecke om browseren kan håndtere billedskift :
if (document.images)

:)

JustinCase
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