Avatar billede jes-eu Nybegynder
31. januar 2005 - 00:20 Der er 17 kommentarer og
1 løsning

mouseover skift CLASS

Hvordan gør man således at man kan skifte style ved mouseover, således at man kan få f.eks. tabelrammer, baggrunde mv. til at skifte.
Avatar billede cdc Novice
31. januar 2005 - 00:22 #1
noget i denne stil du mener, dog er det ikke med class:

<tr bgcolor="#F7F8F9" onmouseover='mOvr(this,"#99A3A6");' onmouseout='mOut(this,"#F7F8F9");' onclick="mClk(this);">

/cdc
Avatar billede elskermad.dk Nybegynder
31. januar 2005 - 00:29 #2
du mangler da en funktion så /cdc?

<td class='class1' onmouseover='this.className="class2"'> hvor class1 & class2 så ska udskiftes med navnet på en class du har lavet i en css-fil :)
Avatar billede jes-eu Nybegynder
31. januar 2005 - 00:32 #3
tak for svaret. elskermad smid et svar.
Avatar billede elskermad.dk Nybegynder
31. januar 2005 - 00:33 #4
:)
Avatar billede olebole Juniormester
31. januar 2005 - 18:49 #5
<ole>

Undgå for alt i verden at skifte klasse. Det er dårligt performende, da browseren derved tvinges til at spytte et helt nyt DOM-træ ud og parse det.

Gør i stedet, som /cdc viser dig det. Det er stort set altid en fordel at skifte de enkete style-properties i stedet. F.eks:

<script type="text/JavaScript">
function mOver(elm, col) {
  elm.style.backgroundColor = col;
}
</script>

<tr bgcolor="#F7F8F9" onmouseover='mOver(this,"#99A3A6")' ......>

/mvh
</bole>
Avatar billede elskermad.dk Nybegynder
31. januar 2005 - 21:45 #6
hehe det er grov som jeg bliver rettet for tiden :) men så har jeg da os lært lidt i dag!

DOM-træ?
Avatar billede cdc Novice
31. januar 2005 - 22:20 #7
Nu tog jeg ikke mit script med, men den ser således ud det jeg bruger på en del af mine sider, dog er de gamle, over 1 år, men de virker stadig:

<SCRIPT LANGUAGE="JScript">

function mOvr(src,clrOver){
  if (!src.contains(event.fromElement)){
    src.style.cursor = 'default';
    src.bgColor = clrOver;
  }
}
function mOut(src,clrIn){
  if (!src.contains(event.toElement)){
    src.style.cursor = 'default';
    src.bgColor = clrIn;
  }
}
function mClk(src){
  if(event.srcElement.tagName=='TR')
    src.children.tags('A')[0].click();
}
function mClk(src,clrIn){
  if(event.srcElement.tagName=='TR')
    src.children.tags('A')[0].click();
  src.bgColor = clrIn;
}

</script>

hvis man ikke kører det som externt som jeg har det
Avatar billede cdc Novice
31. januar 2005 - 22:29 #8
glemte lige at sige at jeg på mine sider har en anden farve en bgcolor ved onmouseout, selvom det ikke ser sådan ud, så oleboles er den 100% riktige måde at lave det enkelt på så koden ikke bliver så lang, det er jo den gamle altid god til at lave :o) Olebole hader jo slam..........
Avatar billede roenving Novice
01. februar 2005 - 09:29 #9
-- og det skal da tilføjes at det at skifte cursor onmouseover er noget vrøvl, da en valgt cursor for et element _kun_ virker, når musen alligevel er over, så det kan bare sættes som en style-propety, og behøver ikke tage kræfter via en javascript-tildeling !-)

DOM-træ:
Et bibliotek, browseren opbygger over alle de elementer, som findes på en html-side, hvor hver enkelt elements renderingsregler er registreret -- også i forhold til forskellige konditioner, f.eks. :hover m.v.

Og det ole hentyder til, er, at browseren i stedet for at skrive noget på et af de stykker papir, som udgør biblioteket, når man ændrer een class, så smider den hele biblioteket i brændeovnen, henter en ny stak papir i boghandleren og starter forfra !o]

-- hvis man i stedet udskifter en property (f.eks. backgroundColor) streger den bare det gamle ud på den relevante papirstump og skriver den nye værdi !-)
Avatar billede elskermad.dk Nybegynder
01. februar 2005 - 09:40 #10
okay så problemet med at skifte en class er at det taget for mange kræfter hos clienten?
Avatar billede roenving Novice
01. februar 2005 - 09:44 #11
-- i voldsomt nestede websider kan det faktisk tage op til flere sekunder, ja !o]

Problematikken kommer nok af, at browseren opgiver at gennemskue de forskellige prioriteringsregler, som ligger i css-fortolkerens måde at skabe DOM-træet (bare tænk på, at en selector kan have en betydning for noget som ligger langt længere nede i træet !-)
Avatar billede olebole Juniormester
01. februar 2005 - 22:41 #12
elskermad.dk >> Du må _endelig_ ikke opfatte det som et personligt angreb (de, jeg angriber personligt, er nu sjældent i tvivl - he-he). Jeg vil bare så gerne pushe glæden ved 'sexy' kode og godt håndværk  ;o)

Det er sjældent en katastrofe at skifte en enkelt klasse. Til gengæld har web-koder det med at vokse ... 'så skal vi lige have en scroller med nyheder ... og det ville også være fedt med en menu ... og så ... og så ...'  :)
Derfor prøver jeg altid at skrive min kode så effektiv som overhovedet muligt - både på klient og server. Gør man det, er der altid 'råd' til en udvidelse.

/cdc har fuldstændig ret i sin iagtagelse: 'Olebole hader jo slam...' - og at jeg altid forsøger at skrumpe kodemængden så meget, overskueligheden tillader (og nogen gange lidt mere).
Jeg vil dog ikke uden videre kalde et enkelt klasseskift for 'slam' - men det er fråds og kan derfor gå hen og blive slam i det lange løb  ;o)
Avatar billede elskermad.dk Nybegynder
01. februar 2005 - 23:13 #13
hehe jeg er udemærket godt klar over at du skriver det ment positivt - er skam også glad for at få fortalt at min metode er mindre uhensigtsmæssigt, og at det kan gøres på en bedre måde - på den måde lærer jeg jo noget nyt når jeg er herinde, som jeg forhåbenligt kan give videre til en anden bruger engang :)

men eftersom at jeg er 100% selvlært og aldrig har fået fortalt noget om programmering face-to-face har jeg jo lært mig min egen måde at gøre tingene på, og derfor er jeg ikke klar over hvad forskellige ting gør osv...

for som jeg har skrevet før står roenving og dig ret sikkert for over 90% af min javascript-"viden", hvilket sgu er meget fedt!
Avatar billede jes-eu Nybegynder
02. februar 2005 - 00:49 #14
Hvad med tabel rammer osv.? findes der en oversigt?
Avatar billede olebole Juniormester
02. februar 2005 - 01:23 #15
elskermad.dk >> Jeg opfattede det nu også mest som en joke fra din side - men derfor kan det zq godt være lidt træls, altid at blive irettesat. Bare vi begge ved, det er i en god mening  ;o)

jes-eu >> Her er til en begyndelse et par links, du forhåbentlig kan få noget ud af:
    http://www.blooberry.com/indexdot/css/
    http://www.w3schools.com/css/default.asp
Avatar billede jes-eu Nybegynder
02. februar 2005 - 02:46 #16
Mange tak, men hvordan laver jeg det med script istedet for css:

<script type="text/JavaScript">
function mOver(elm, col) {
  elm.style.backgroundColor = col;
}
</script>

<tr bgcolor="#F7F8F9" onmouseover='mOver(this,"#99A3A6")' ......>
Avatar billede roenving Novice
02. februar 2005 - 02:53 #17
Virker det ikke ganske glimrende ?-)

<tr bgcolor="#F7F8F9" onmouseover='this.style.backgroundColor="#99A3A6"' onmouseover='this.style.backgroundColor="#f7f8f9"' ......>
Avatar billede roenving Novice
02. februar 2005 - 02:53 #18
hrm ...

<tr bgcolor="#F7F8F9" onmouseover='this.style.backgroundColor="#99A3A6"' onmouseout='this.style.backgroundColor="#f7f8f9"' ......>
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