Avatar billede frank1973 Nybegynder
07. november 2002 - 20:26 Der er 19 kommentarer og
1 løsning

billedskift

Jeg har to billeder. En er grøn den anden rød. Det skal så være sådan, at når man klikker på den grønne skifter den til rød og klikker man igen skifter den tilbage til grøn.
En slags tænd/sluk knap.
Det er lykkedes mig at finde noget kode, som kunne gøre dette, men kun med en knap pr. side. Jeg skal have flere af disse på en side.
Avatar billede boris Mester
07. november 2002 - 20:37 #1
Her kan du styre en knap meget enkelt:
<script>
    betingelse = false
   
        function knud()
    {
    if (betingelse)
    {
    document.getElementById("poul").src="roed.gif";
    betingelse = false
    }
    else
    {
    document.getElementById("poul").src="groen.gif";
    betingelse = true
    }
    }
    </script>
i body:

<img id = "poul" src = "roed.gif" onmouseover="knud();">
Avatar billede frank1973 Nybegynder
07. november 2002 - 20:43 #2
Vil det sige, at jeg skal have een funktion for hver knap på siden? Altså function svend()... og function knud().. og function valdemar().. ?
Avatar billede boris Mester
07. november 2002 - 21:04 #3
Eks:
function skift(nummer)
    {
    if (betingelse)
    {
    document.getElementById(nummer).src = "roed.gif";
    betingelse = false;   
    }
    else
    {
    document.getElementById(nummer).src = "groen.gif";
    betingelse = true;       
    }   
    }
    </script>
   
</head>

<body>
<img id=1 src = "roed.gif"  onmouseover="skift(1);">
<img id=2 src = "roed.gif"  onmouseover="skift(2);">
<img id=3 src = "roed.gif"  onmouseover="skift(3);">
Avatar billede boris Mester
07. november 2002 - 21:05 #4
De første linier manglede, beklager. Her er de:
<script>
   
    betingelse = false
   
(og så videre med funktionen...)
Avatar billede Slettet bruger
07. november 2002 - 21:10 #5
Tag et kig på

<HTML>
<HEAD>
    <TITLE></TITLE> <SCRIPT>

//set up checkboxes and their values
ia=new Array()
ia['cimg1']="SSN1"
ia['cimg2']="SSN2"
ia['cimg3']="SSN3"
///for turning on and off and to transmit nice values.

function setc(imgn)
{
for(imgs in ia)
{
document.images[imgs].src='uchecked.jpg'
}
imgn.src='checked.jpg'
document.forms[0].TaxType.value=ia[imgn.name]
}
function unsetc(imgn)
{
imgn.src='uchecked.jpg'
document.forms[0].TaxType.value=""
}
function checke()
{
imgn=(document.all) ? event.srcElement : d.target 
document.forms[0].TaxType.value=="checked" ? unsetc(imgn) : setc(imgn)
}
</SCRIPT>
</HEAD>
<BODY>
    <P><A HREF="#" ONCLICK="checke();return false"><IMG NAME="cimg1"
        SRC="uchecked.jpg" WIDTH="450" HEIGHT="162"></A> </P>
    <P><A HREF="#" ONCLICK="checke();return false"><IMG NAME="cimg2"
        SRC="uchecked.jpg" WIDTH="450" HEIGHT="162"></A> </P>
    <P><A HREF="#" ONCLICK="checke();return false"><IMG NAME="cimg3"
        SRC="uchecked.jpg" WIDTH="450" HEIGHT="162"></A> </P>
    <FORM><INPUT TYPE="BUTTON" ONCLICK="alert(this.form.TaxType.value)"
        VALUE="check value"><INPUT TYPE="HIDDEN" VALUE="" NAME="TaxType"></FORM>
    </BODY>
</HTML>

Det er min opfattelse at du skal bruge den som en knap med onclick, er det rigtigt?
Avatar billede frank1973 Nybegynder
07. november 2002 - 21:15 #6
Faktisk en lige hvad jeg kan bruge, men hvis du prøver den, finder du hurtigt ud af, at nogle gange skal man trykke to gange før den skifter. Jeg gætter mig til, at det skyldes variablen 'betingelse', som ligger udenfor funktionen. Hvis ja, ville det så hjælpe at lægge den i strengen i body-delen?
Avatar billede boris Mester
07. november 2002 - 21:18 #7
Nu kom jeg til at skrive onmouseover. Det skal selvfølgelig være onclick!
Avatar billede frank1973 Nybegynder
07. november 2002 - 21:23 #8
boris: det der med at klikke to gange var et spørgsmål til dig. Jeg havde ikke opdaget en andet havde svaret også, sorry.
Avatar billede frank1973 Nybegynder
07. november 2002 - 21:25 #9
el barto: det er ikke lige såden en funktion jeg leder efter men mere som boris.
Avatar billede boris Mester
07. november 2002 - 21:30 #10
Jeg tror bare det skyldes, at jeg skrev onmouseover, dvs at det sker, når musen føres over billedet.
Det skal være onclick og så udløses funktionen, når man klikker.
Avatar billede frank1973 Nybegynder
07. november 2002 - 21:57 #11
boris:
Jeg har ændret det til onClick, men nogle gange skal man trykke to gange.
Avatar billede boris Mester
07. november 2002 - 22:16 #12
Hvis windows fanger den hændelse, som et enkelt museklik er, så bliver funktionen aktiveret.
Jeg har prøvet mange gange. Hvis du klikker så hurtigt, at du nærmer dig dobbelklik-hastighed, sker der ingenting.
Ellers virker det.
Avatar billede boris Mester
07. november 2002 - 22:27 #13
Man kan imødegå det med en lille forsinkelse, så billedskiftet først sker et øjeblik efter at du har trykket.
Eksemplet her betyder, at billedet skifter 250 ms (1/4 sekund) efter at du har trykket museknappen ned.
<img id=1 src = "spm.gif" onmousedown="window.setTimeout('skift(1);',250)">
Avatar billede boris Mester
07. november 2002 - 22:29 #14
(src = "roed.gif" .... skulle der stå)
Avatar billede frank1973 Nybegynder
07. november 2002 - 23:06 #15
Jeg har opdaget, at har man to knapper som er røde som udgagnspunkt og man trykker på den ene, så den bliver grøn, er man nød ti at trykke to gange på den anden røde for at den bliver grøn. Og den er sikkert hver gang.
Jeg tænker det er variablen, betingelse, som ved aktivering til grøn, ændres til true. Er det ikke muligt at sætte betingelse = false ind i funktionen bare for at prøve min teori?
Avatar billede frank1973 Nybegynder
07. november 2002 - 23:16 #16
prøv at starte med alle knapper som grønne. Jeg skal klikke to gange før de skifter til rød.
Avatar billede boris Mester
08. november 2002 - 06:14 #17
Du har ganske ret.
Sådan her virker detHvis du starter med rød, skal der byttes om på farverne i funktionen også...
<script>
    var betingelse;
    betingelse = false;   
    function skift(nummer)
    {
    if (betingelse)
    {
    document.getElementById(nummer).src = "groen.gif";
    betingelse = false;   
    }
    else
    {
    document.getElementById(nummer).src = "roed.gif";
    betingelse = true;       
    }   
    }
    </script>   
</head>
<body>
<img id=1 src = "groen.gif"  onclick="skift(1);">
Avatar billede frank1973 Nybegynder
08. november 2002 - 10:21 #18
Problemet bliver bare vendt om. Jeg vil meget gerne prøve at sætte variablen betingelse inde i funktionen, men hvordan gør man?
Avatar billede frank1973 Nybegynder
08. november 2002 - 12:11 #19
Selvom den ikke er optimal prøver jeg at rette videre på den. Du for dog alligevel dine point.
Avatar billede boris Mester
08. november 2002 - 12:26 #20
Tak for point!
Variablen bør stå uden for funktionen. Så gælder den globalt.
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