[DHTML + CSS] Stijl veranderen onmouseover en onmouseout

Pagina: 1
Acties:
  • 126 views sinds 30-01-2008
  • Reageer

  • Rexomnium
  • Registratie: September 2000
  • Laatst online: 15:07

Rexomnium

Vincam aut moriar

Topicstarter
Met behulp van:
HTML:
1
2
<td onmouseover="this.style.backgroundColor='#000000';'" 
onmouseout="this.style.backgroundColor='#FFFFFF';">Index</td>


Wordt de cell van de tabel zwart als ik met mijn muis eroverheen ga en wit als ik er weer vanaf ga. Simpel.

Nu wil ik meerdere artributen gebruiken. Ik wil dat doen met behulp van een class die ik in een externe CSS-file heb gedefinieerd.

Cascading Stylesheet:
1
2
3
4
5
6
7
.test {
background-color: #000;
color: #FFF;
font-weight: bold;
cursor: pointer;
etc, etc
}

Ik wil dus dat ik met een onmouseover de stijl verander in .test. Simpelweg
HTML:
1
<td onmouseover="this.style='test';'">Index</td>

werkt natuurlijk niet. Hoe moet ik dat doen?

[ Voor 31% gewijzigd door Rexomnium op 05-11-2004 13:49 ]

We zijn allemaal vaandeldrager in een optocht van gekwetsten.


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
JavaScript:
1
2
  this.className = 'test';
  this.setAttribute('class', 'test');


:Z

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Maar hou er wel rekening mee dat het switchen van classes heel traag kan gaan.

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 15:30
TS: Ziet eruit als een simpele link met een mouseover of niet? Waarom gebruik je dan niet gewoon a:hover?

Verwijderd

InZane schreef op 05 november 2004 @ 14:07:
TS: Ziet eruit als een simpele link met een mouseover of niet? Waarom gebruik je dan niet gewoon a:hover?
Je kan :hover binnen IE alleen aan een anchor hangen, dus daar heeft 'ie hier niets aan denk ik (tenzij al z'n bezoekers een browser zoals Firefox gebruiken). Bovendien zal er een reden zijn dat 'ie geen anchor heeft gebruikt, maar een TD. :)

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Dat kan met Javascript:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
function changeTdClass() {
  var td = document.getElementsByTagName('td');
  for(var i=0;i<td.length;i++) {
    if(td.item(i).className=='class1') {
      td[i].onmouseover = function() {
        this.className = 'class2';
      }
      td[i].onmouseout = function() {
        this.className = 'class1';
      }
    }
  }
}


HTML:
1
<td class="class1">


Cascading Stylesheet:
1
2
3
.class1 {background:#fff; color:#000;}
.class2 {background:#000; color:#fff;}
etc

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 15:30
Verwijderd schreef op 05 november 2004 @ 14:12:
[...]


Je kan :hover binnen IE alleen aan een anchor hangen, dus daar heeft 'ie hier niets aan denk ik (tenzij al z'n bezoekers een browser zoals Firefox gebruiken). Bovendien zal er een reden zijn dat 'ie geen anchor heeft gebruikt, maar een TD. :)
Ben benieuwd naar de reden :)

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Om zoiets te bereiken, lijkt me?

dit is een linkje uit een menu
dit is een linkje uit een menu
dit is een linkje uit een menu


Leuk voor in de navigatiemenu's enzo :)

[ Voor 4% gewijzigd door BalusC op 05-11-2004 23:51 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:00

crisp

Devver

Pixelated

En nu zonder JS:



;)

Intentionally left blank


Verwijderd

ja en als mensen nou op de td klikken?
krijgen ze nix. en ze zien wel de achtergrond veranderen.
en alleen als je over de link zelf komt zie je een lijn.

en de rollovers zijn afhankelijk van javascript.
waarom niet gewoon a:hover gebruiken?
met display:block; en width:100%; enzo kan je exact hetzelfde effect krijgen, of beter...

edit:
crisp is me voor met zijn live voorbeeld ;(

[ Voor 9% gewijzigd door Verwijderd op 06-11-2004 00:06 ]


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Hm, er stond mij bij dat dit niet lekker werkte in mozilla en opera. Affijn, mijn scriptje was eigenlijk bedoeld voor td's zonder een a:link erin. Maar voor de td's met een link is de code van crisp wel veel netter d:)b

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Larsan! lekker ding! :P

Je kan ook clay's csshover.htc gebruiken, dan kan je ook td:hover gebruiken in IE. in firefox werkt dit standaard al :)

Stop uploading passwords to Github!


Verwijderd

SchizoDuckie schreef op 06 november 2004 @ 12:12:
Larsan! lekker ding! :P

Je kan ook clay's csshover.htc gebruiken, dan kan je ook td:hover gebruiken in IE. in firefox werkt dit standaard al :)
nergens voor nodig
crisp schreef op 06 november 2004 @ 00:01:
En nu zonder JS:

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
26
27
28
29
30
31
32
33
<style type="text/css">

#navtable td {
    height: 24px;
    width: 200px;
    text-align: center;
    padding: 0px;
}
#navtable td a {
    display: block;
    width: 100%;
    line-height: 24px;
    color: #000;
    background-color: #fff;
    text-decoration: none;
}
#navtable td a:hover {
    background-color: #def;
    text-decoration: underline;
}

</style>
<table id="navtable">
    <tr>
        <td><a href="#">linkje 1</a></td>
    </tr>
    <tr>
        <td><a href="#">linkje 2</a></td>
    </tr>
    <tr>
        <td><a href="#">linkje 3</a></td>
    </tr>
</table>


;)
wie heeft het over a:link :*D

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Zonder die .htc kom je niet heel erg ver in IE hoor. Het lijkt me nogal omslachtig om een stijl voor elk ID, en dus elk object, op je pagina te gaan maken. Het kan wel zonder, maar dat is echt ontzettend onhandig. Dat wordt zo onhandig en totaal niet onderhoudbaar (spelling? w.t.f.). Als je voor elk ID alles gaat aangeven, gaat naar mijn mening het hele idee en het grote voordeel achter CSS verloren (de classes). :)

[ Voor 23% gewijzigd door Cavorka op 06-11-2004 17:31 ]

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

faabman:
JavaScript:
1
2
  this.className = 'test';
  this.setAttribute('class', 'test');


:Z
Iets aardiger mag wel ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Cavorka schreef op 06 november 2004 @ 17:29:
[...]
Zonder die .htc kom je niet heel erg ver in IE hoor. Het lijkt me nogal omslachtig om een stijl voor elk ID, en dus elk object, op je pagina te gaan maken. Het kan wel zonder, maar dat is echt ontzettend onhandig. Dat wordt zo onhandig en totaal niet onderhoudbaar (spelling? w.t.f.). Als je voor elk ID alles gaat aangeven, gaat naar mijn mening het hele idee en het grote voordeel achter CSS verloren (de classes). :)
Dit werkt ook gewoon in IE hoor :) :

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<style type="text/css">

.navtable td {
    height: 24px;
    width: 200px;
    text-align: center;
    padding: 0px;
}
.navtable td a {
    display: block;
    width: 100%;
    line-height: 24px;
    color: #000;
    background-color: #fff;
    text-decoration: none;
}
.navtable td a:hover {
    background-color: #def;
    text-decoration: underline;
}

</style>
<table class="navtable">
    <tr>
        <td><a href="#">linkje 1</a></td>
    </tr>
    <tr>
        <td><a href="#">linkje 2</a></td>
    </tr>
    <tr>
        <td><a href="#">linkje 3</a></td>
    </tr>
</table>

<table class="navtable">
    <tr>
        <td><a href="#">linkje 52</a></td>
    </tr>
    <tr>
        <td><a href="#">linkje 53</a></td>
    </tr>
    <tr>
        <td><a href="#">linkje 54</a></td>
    </tr>
</table>

[ Voor 19% gewijzigd door JHS op 06-11-2004 19:54 ]

DM!


Verwijderd

[22:29:35] <@DjRedMar[Dru> g0t ownt :D
[22:29:45] <@Krause> stuur ze een bedankmailtje

bij deze :Y) Hier had ik al dikke ruzie mee met IE (td:hover) werkte nie....

toppie :D
Pagina: 1