Avatar billede macho Praktikant
12. juli 2003 - 00:13 Der er 16 kommentarer og
1 løsning

onMouseover, onMouseout, onClick på billede-menu

Jeg har nogle billeder, som fungerer som menu på denne side: http://www.kalundborg-bedandbreakfast.dk

Som det er nu, skifter billederne, når jeg kører musen hen over hhv. fjerner musen igen. Hvordan er det muligt at inkludere en onClick, således at hvis jeg klikker på et af billederne, så forbliver billedet som ved onMouseover (info2.gif) ?

her mit script:

<script language="JavaScript">

if (document.images) {
    button_1_on=new Image;
    button_1_on.src="images/info2.gif";
    button_1_off=new Image;
    button_1_off.src="images/info.gif";

}
function rollIn(imgName){
    if (document.images) {
        document[imgName].src=eval(imgName + "on.src");
    }
}
function rollOut(imgName){
    if (document.images) {
        document[imgName].src=eval(imgName + "off.src");
    }
}
</script>


<a href="info.htm" onMouseover="rollIn('button_1_')" onMouseout="rollOut('button_1_')"><img src="images/info.gif" border="0" name="button_1_" alt="Info" width="54" height="24"></a>



---
mvh
Avatar billede roenving Novice
12. juli 2003 - 00:16 #1
Vil det kun være for eet billede ad gangen dem effekt skal kunne være der ?-)
Avatar billede macho Praktikant
12. juli 2003 - 00:20 #2
Nej, der er i alt seks billeder:

<script language="JavaScript">

if (document.images) {
    button_1_on=new Image;
    button_1_on.src="images/info2.gif";
    button_1_off=new Image;
    button_1_off.src="images/info.gif";

    button_2_on=new Image;
    button_2_on.src="images/priser2.gif";
    button_2_off=new Image;
    button_2_off.src="images/priser.gif";

    button_3_on=new Image;
    button_3_on.src="images/beliggenhed2.gif";
    button_3_off=new Image;
    button_3_off.src="images/beliggenhed.gif";

    button_4_on=new Image;
    button_4_on.src="images/kontakt2.gif";
    button_4_off=new Image;
    button_4_off.src="images/kontakt.gif";

    button_5_on=new Image;
    button_5_on.src="images/reservation2.gif";
    button_5_off=new Image;
    button_5_off.src="images/reservation.gif";

    button_6_on=new Image;
    button_6_on.src="images/forside2.gif";
    button_6_off=new Image;
    button_6_off.src="images/forside.gif";

}
function rollIn(imgName){
    if (document.images) {
        document[imgName].src=eval(imgName + "on.src");
    }
}
function rollOut(imgName){
    if (document.images) {
        document[imgName].src=eval(imgName + "off.src");
    }
}
</script>


Det var for ikke at gøre indlægget unødigt langt; men det blev det så alligevel nu ;-)
Avatar billede roenving Novice
12. juli 2003 - 00:21 #3
Skal det være sådan at alle 6 på een gang skal kunne være valgt (on) ?-)
Avatar billede macho Praktikant
12. juli 2003 - 00:24 #4
Nej, billederne fungerer som en menu, og hvis jeg klikker på f.eks. billedet INFO (åbner info.htm i en anden ramme) skal dette billede - og kun dette - være ON. Hvis jeg så derefter klikker på f.eks. billedet BELIGGENHED er det det billede, som skal være ON og INFO skal være OFF igen.
Avatar billede roenving Novice
12. juli 2003 - 00:38 #5
Et forsøg direkte skrevet her:

var buttonClicked = "";//global variabel
function clickButton(imgName){
  var num = parseInt(imgName.substring(7),10);
  for (i=1;7>i;i++){
    if(i!=num){
      imgOff = "button_"+i+"_";
      document[imgOff].src=eval(imgOff + "off.src");
    }
  }
  buttonClicked = imgName;
}

function rollOut(imgName){
    if (document.images&&imgName!=buttonClicked) {
        document[imgName].src=eval(imgName + "off.src");
    }
}

<a href="info.htm" onMouseover="rollIn('button_1_')" onMouseout="rollOut('button_1_')" onclick="buttonClicked='button_1_';"><img src="images/info.gif" border="0" name="button_1_" alt="Info" width="54" height="24"></a>

-- som slet ikke testet, men jeg håber du kan se ideen !-)
Avatar billede macho Praktikant
12. juli 2003 - 00:50 #6
Vi er skam på rette spor allerede. Når jeg klikker på INFO skifter den ganske vist som ønsket, men hvis jeg efterfølgende klikker på et andet punkt i menuen, eks. BELIGGENHED, så skulle INFO jo gerne gå tilbage til OFF igen - dette kan jeg ikke få den til?
Avatar billede roenving Novice
12. juli 2003 - 00:53 #7
Prøv (til test ,-) at sætte en
alert(imgOff)
lige efter linjen:
imgOff = imgOff = "button_"+i+"_";

-- det skulle give dig en hulens masse alerter, men kan forhåbentlig pinpointe problemet !-)
Avatar billede macho Praktikant
12. juli 2003 - 00:56 #8
Disse alerts, seks i alt:

button_2_

button_3_

osv. op til button_6_
Avatar billede roenving Novice
12. juli 2003 - 00:58 #9
Glemt ;-|

-- jeg blandede to tankerækker sammen ...

<a href="info.htm" onMouseover="rollIn('button_1_')" onMouseout="rollOut('button_1_')" onclick="clickButton('button_1_');"><img src="images/info.gif" border="0" name="button_1_" alt="Info" width="54" height="24"></a>
Avatar billede macho Praktikant
12. juli 2003 - 01:01 #10
sri, den havde jeg set og ændret, men glemt at fortælle dig. Det er med onclick="clickButton('button_1_');" jeg får de seks alerts.
Avatar billede roenving Novice
12. juli 2003 - 01:02 #11
og alle de 6 bliver ikke til off-imaget ?-)
Avatar billede macho Praktikant
12. juli 2003 - 01:06 #12
Så er den i orden - det var mig, som ikke havde fået rettet til  onclick="clickButton('button_1_');" alle seks steder - det gik der ged i. Det fungerer 100% korrekt nu - tks again, rønving.

smid et svar  :-)
Avatar billede roenving Novice
12. juli 2003 - 01:07 #13
Velbekomme '-)
Avatar billede roenving Novice
12. juli 2003 - 01:10 #14
-- og tak for points ;~}
Avatar billede macho Praktikant
02. marts 2007 - 20:35 #15
Er du stadig med her, rønving? Jeg roder igen med denne menu, men kan ikke få den til at virke, hvis jeg - som nu - har flere end 6 forskellige billed-knapper i menuen. Skal have den til at virke med 8 forskellige knapper nu, men aktive knap skifter ikke, før jeg har haft musen henne over 2. gang - altså ikke ved Onclick!

Jeg smider selvfølgelig flere points til dig, hvis du kan hjælpe!
Avatar billede macho Praktikant
02. marts 2007 - 20:42 #16
Sorry, my mistake - det var jo så nemt som noget. Denne linje:
for (i=1;7>i;i++){
blev bare skiftet til
for (i=1;9>i;i++){

hvis jeg skal bruge 8 billeder! undskyld forstyrrelsen igen!
Avatar billede roenving Novice
03. marts 2007 - 10:56 #17
U'r welcome !-)
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