Avatar billede webber89 Nybegynder
14. februar 2008 - 12:42 Der er 9 kommentarer

hover effekt på td

Hej hvordan for jeg en td til at skifte baggrundsbillede når mussen føres over. giv meget gerne kode eksempel.
Avatar billede w13 Novice
14. februar 2008 - 12:44 #1
<td style="background-image:url('img1.jpg')" onmouseover="this.style.backgroundImage=url(img2.jpg)" onmouseout="this.style.backgroundImage=url(img1.jpg)">
Avatar billede w13 Novice
14. februar 2008 - 12:45 #2
Hov:

<td style="background-image:url('img1.jpg')" onmouseover="this.style.backgroundImage='url(img2.jpg)'" onmouseout="this.style.backgroundImage='url(img1.jpg)'">
Avatar billede jokkejensen Novice
14. februar 2008 - 12:57 #3
Det bør/kan løses med CSS

Du skal lige bruge en behavior til ie6, mener en google på IE6 whatever:hover finder den.

/JJ
Avatar billede w13 Novice
14. februar 2008 - 13:07 #4
Det kan, men jeg mener ikke, det er særlig hensigtsmæssigt. Det var oprindelig kun ment, at hover i CSS skulle fungere på a-tags og ikke på nogen andre.
Avatar billede jokkejensen Novice
14. februar 2008 - 13:28 #5
:link og :visited er ja..

Men de fleste psuedo klasser er understøttet af alle elementer, :before :after :hover osv.. Bare ikke i IE6, men det er heldigvis ikke IE6 standarderne sættes efter.

/JJ
Avatar billede jokkejensen Novice
14. februar 2008 - 13:29 #6
Alt i alt er det et spørgsmål om man vil have noget rodet markup, eller skubbe det ud i JS eller CSS, og her ser jeg det meget lettere med CSS... Det skal i hvert flad ikke ligge inde som en attribt på tagget.

/J
Avatar billede w13 Novice
14. februar 2008 - 14:38 #7
Ja, det er altid en fordel at have det ekstern og mindste mark-up koden mest muligt.

Det kan godt være, du har ret i det med :hover .

Bare for sjov, så kunne en ekstern JS-løsning se sådan her ud:
-------------------------------------------
...
<td class="hejfordig">...</td>
...

<script type="text/javascript">
function ToggleBG(o,sType){
    o.style.backgroundColor=sType=="over"?"img1.jpg":"img2.jpg"
}

var sClass="hejfordig";var aElm=document.getElementsByTagName("td")[0],i=aElm.length;
do{
    if(aElm[i].getAttribute("className")!=sClass&&aElm[i].getAttribute("class")!=sClass)break;
    aElm[i].onmouseover=function(){ToggleBG(aElm[i],"over")};aElm[i].onmouseout=function(){ToggleBG(aElm[i])}
}while(i--)</script>
-------------------------------------------
Eller hvis man ikke har noget imod at skulle sætte onmouseover og onmouseout:
-------------------------------------------
...
<td onmouseover="ToggleBG(this,'over')" onmouseout="ToggleBG(this)">...</td>
...

<script type="text/javascript">
function ToggleBG(o,sType){
    o.style.backgroundColor=sType=="over"?"img1.jpg":"img2.jpg"
}
</script>
-------------------------------------------
Og så er det jo klart at én linje CSS er at foretrække.
Dog ville jeg hellere bruge min løsning nr. 2 her, hvis CSS-metoden ikke er valid.
Avatar billede jokkejensen Novice
14. februar 2008 - 14:54 #8
CSS metoden er valid, de bruger det eksempelvis meget på alistapart til deres dropdown menuer.. de omtaler også IE<=6 problematikken..

Jeg kan ikke lige bekræfte at standarderne overholdes, men jeg kan bekræfte at det understøttes af alle moderne browsers :)

/JJ
Avatar billede w13 Novice
24. april 2008 - 11:57 #9
webber89>> Lukketid?
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

IT-supporterelever til Lokal IT på Antvorskov Kaserne

Politiets Efterretningstjeneste

SOC-analytikere i PET

Netcompany A/S

Managing Architect