24. januar 2005 - 18:35Der er
11 kommentarer og 2 løsninger
Skirft baggrunds farve i celler
Hej med jer, jeg har brug for en hånd til at kække denne nød...
i tabbel neden for er der 10 celler. Når man holder musen over celle fem skal celle 0 - 5 skifte baggrundsfarve. Holder man musen over celle 9 skal celle 0 - 9 skifte. holder man musen over celle 0 er det kun den der skal skifte. så der skal skiftes frem og tilbage mellem farverne.
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
softspot >> Ja, som du nok har opdaget, så er event-objektet ikke af samme type i Moz og IE ;o) Denne løsning gør brug af property'en 'TD_ELEMENT.cellIndex', der returnerer cellens nummer i dens egen række:
<script type="text/JavaScript"> var actRow = timer = null; function initMouseEvents(tbl) { tbl.onmouseover = colorTDs; tbl.onmouseout = function(){timer=setTimeout("deColorTR()",100)}; } function colorTDs(e) { var srcElm = parElm = aTD = null; if (timer) clearTimeout(timer); srcElm = (window.event)? window.event.srcElement : e.target; if (srcElm.tagName=="TD") { parElm = srcElm.parentNode; if (actRow && actRow!=parElm) deColorTR(); aTD = srcElm.parentNode.getElementsByTagName("td"); for (i=0; i<aTD.length; i++) { aTD[i].style.backgroundColor = (i<=srcElm.cellIndex)? "red" : ""; } actRow = parElm; } } function deColorTR() { var aTD = actRow.getElementsByTagName("td"); for (i=0; i<aTD.length; i++) aTD[i].style.backgroundColor = ""; actRow = null; } </script>
Jamen, de er helt rigtigt alle gangbare ... men der *er* forskel, alligevel (here it comes, legende ... hehe):
Legende's er helt korrekt, men der skal skrives en masse HTML-kode, der ikke er nødvendig i en mere generisk løsning, som softspot's og min. Samtidig låses man fast i et bestemt antal celler - og den gennemløber rækken to gange, når celler skal farves, hvilket ikke er nødvendigt.
softspot's virker kun i IE og Opera og løber også rækken igennem to gange, når der skal farves celler.
Min løsning virker under alle moderne browsere (alle browsere, der understøtter W3C's DOM) - og er optimeret til kun at gennemløbe det nødvendige antal celler én gang ved farveskift. Det giver bedre performance og mindre belastning på CPU og RAM.
Jeg vil derfor helt klart anbefale min egen ... men vil hellere end gerne dele points ligeligt med de andre to ;o)
Jeg blev lidt rørt da jeg læste den, men you know... "Hvor gærdet er lavest, ses legenden i firspring!"
Synes godt om
Ny brugerNybegynder
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.