Toon posts:

[JS] Onmouseover, image blijft

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb nu het volgende stukje code voor m'n rollover-buttons:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script language="javascript">
PreDef = new Array()
PreRol = new Array()

for(i=1; i<8; i++)
{
    PreDef[i]=new Image()
    PreDef[i].src="button/button" + i + ".gif"
    PreRol[i]=new Image()
    PreRol[i].src="button/pbutton" + i + ".gif"
}

function Roll(r,p)
{
    if (p)
    {
        this.document.images[r-1].src=PreRol[r].src
    }
    else
    {
        this.document.images[r-1].src=PreDef[r].src
    }

}
</script>


Waarbij ik de buttons als volgt oproep:
code:
1
2
3
<a href="home.html" target="main" onmouseover="Roll(1,1)" onmouseout="Roll(1,0)">[img]"button/button1.gif"[/img]</a><br>
<a href="end.html" target="main" onmouseover="Roll(2,1)" onmouseout="Roll(2,0)">[img]"button/button2.gif"[/img]</a><br>
etc.


Nu zou ik graag willen dat, wanneer er op de eerste knop gedrukt wordt, de image in de "onmouseover"-stand blijft.
Daarbij moet deze eerste knop weer terug naar de "onmouseout"-stand als er op de tweede knop gedrukt wordt, die op zijn beurt weer in de "onmouseover"-stand moet gaan en blijven.

Heeft iemand een idee of en hoe dit kan?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 07:23

crisp

Devver

Pixelated

Bijhouden welke button geklikt is, en zorgen dat daarvoor de mouseout niet uitgevoerd wordt tenzij er op een andere button is geklikt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function Roll(r,p)
{
    if (p)
    {
        this.document.images[r-1].src=PreRol[r].src;
    }
    else if (r != clicked)
    {
        this.document.images[r-1].src=PreDef[r].src;
    }

}

var clicked = null;
function Click(r)
{
    if (clicked) Roll(clicked, 0);
    clicked = r;
}

met
HTML:
1
2
<a href="home.html" target="main" onmouseover="Roll(1,1)" onmouseout="Roll(1,0)" onclick="Click(1)">[img]"button/button1.gif"[/img]</a><br>
<a href="end.html" target="main" onmouseover="Roll(2,1)" onmouseout="Roll(2,0)" onclick="Click(2)">[img]"button/button2.gif"[/img]</a><br>


disclaimer: niet getest

Intentionally left blank


Verwijderd

Topicstarter
Hij werkt, maar niet helemaal......
De rollover-image blijft namelijk wel staan, maar gaat niet weg als ik op een andere knop druk, alleen als ik nog eens over de knop zelf heen rol, veranderd hij in de "onmouseout"-image......

Maar in elk geval al bedankt met hetgeen je hebt bedacht, ben ik toch weer wat verder.

[ Voor 88% gewijzigd door Verwijderd op 31-12-2002 13:07 ]


Verwijderd

Topicstarter
Nee, het is me, ook met aanpassing van bovenstaande code niet gelukt.
Iemand anders nog een mogelijke oplossing?

Verwijderd

Je hebt nog een 'hulp' variabele nodig in de functie Click volgens mij.

var clicked = null;
function Click(r)
{temp=clicked;
clicked = r;
if (clicked) Roll(temp, 0);
}

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 07:23

crisp

Devver

Pixelated

Verwijderd schreef op 06 January 2003 @ 21:39:
Je hebt nog een 'hulp' variabele nodig in de functie Click volgens mij.

var clicked = null;
function Click(r)
{temp=clicked;
clicked = r;
if (clicked) Roll(temp, 0);
}
idd, net getest en dit werkt:
JavaScript:
1
2
3
4
5
6
7
8
9
var clicked = null;
function Click(r)
{

    var temp = clicked;
    clicked = r;
    if (temp) Roll(temp, 0);

}

Intentionally left blank


Verwijderd

Topicstarter
Jep, hij werkt nu inderdaad naar behoren!
Bedankt voor jullie hulp :)
Pagina: 1