Avatar billede deamill Nybegynder
14. april 2004 - 07:53 Der er 34 kommentarer og
1 løsning

lidt mere hjælp til mouse-over /out!?

Hejsa,

Jeg må hellere åbne et nyt spørgsmål ;-)

Jeg bruger som sagt denne her til at skifte farve med når jeg kører musen over en række i tabellen:

function chOver(elm,typ,overcolback,outcolback,overcoltext,outcoltext){
  st = elm.style;

  if(typ=='over'){
    st.color = overcoltext;
    st.backgroundColor = overcolback;
  }else{
    st.color = outcoltext;
    st.backgroundColor = outcolback;
  }
}

Jeg har lige 2 spørgsmål:
1. Kan jeg også manipulere med font type mv. i samme function?
2. Kan jeg gøre så der vises en pege-finger når musen køres over rækken?

Mht. spørgsmål 1 er mit problem, at den tekst som står i feltet har fået sat farven vha. <font ... color="red">, dette gør at man ikke kan ændre tekst farven med min mouse-over function, det kan man derimod godt, hvis jeg fjerner farve definitionen fra font tagged, men det ønsker jeg ikke, da default farven på siden er en anden end den ønskede (defineret i body)!


/deamill
Avatar billede mik789 Nybegynder
14. april 2004 - 08:13 #1
i javascript styrer du cursoren med: ditElement.style.cursor = 'pointer'; hvis du vil have en pegefinger,
og skrift styrer du med: ditElement.style.fontFamily = 'Verdana, Arial, sans-serif'; f.eks.

jeg vil anbefale dig helt at droppe <font> tag'et og i stedet bruge CSS.
Avatar billede mik789 Nybegynder
14. april 2004 - 08:15 #2
i dit eksempel bliver det jo så:
st.cursor = 'pointer';
st.fontFamily = 'Verdana';
Avatar billede deamill Nybegynder
14. april 2004 - 08:17 #3
okay :-)
er der mon så også noget som hedder st.fontcolor="farve"?
Avatar billede mik789 Nybegynder
14. april 2004 - 08:18 #4
"fontcolor" er bare: color.

så det du har allerede: st.color = overcoltext; angiver netop skriftfarven. jeg går ud fra at "overcoltext" allerede er defineret i scriptet som en hexværdi-farve som f.eks. #ffcc00; e.l.
Avatar billede deamill Nybegynder
14. april 2004 - 08:20 #5
jamen farven skifter som sagt ikke fordi jeg har defineret en farve med font tagged!
Avatar billede mik789 Nybegynder
14. april 2004 - 08:21 #6
så fjern <font> tag'et og angiv farven i css i stedet.
Avatar billede deamill Nybegynder
14. april 2004 - 08:22 #7
hvordan? jeg har kun brugt css i forbindelse med links?!
Avatar billede mik789 Nybegynder
14. april 2004 - 08:23 #8
F.eks. sådan (indsættes mellem <head> og </head> - "ditElement" skal være værdien af id atributten i det element det drejer sig om, f.eks. <div id="menu"></div>)

<style type="text/css">
body {
  color: black;
}
ditElement {
  color: red;
}
</style>
Avatar billede deamill Nybegynder
14. april 2004 - 08:24 #9
f.eks sådan her i min css:
A.menu2:link {text-decoration: none; color: red;}
A.menu2:visited {text-decoration: none; color: red;}
A.menu2:active {text-decoration: none; color: red;}
A.menu2:hover {text-decoration: none; color: white; background-color: red;}

i linked angiver jeg så i tagged class="menu2" f.eks. men hvordan gør jeg når det bare er tekst?
Avatar billede mik789 Nybegynder
14. april 2004 - 08:27 #10
hvis det bare er tekst du vil have skiftet farve på skal du lægge den ind i et element du kan tildele en id eller en class. Hvis det er midt i en linje, kan du bruge <span>, hvis det er en blok (dvs. med linjeskift før og efter), kan du bruge <div>. Altså:

<span onmouseover="this.style.color='red';">denne tekst skal skifte farve</span>

eller tilsvarende for en <div>
Avatar billede mik789 Nybegynder
14. april 2004 - 08:30 #11
her har jeg godt nok ikke brugt id, men hvis du vil have en standard farve på elementet gør du bare sådan:

<style type="text/css">
...
...
dine andre styles
minTekst {
  color: black;
}
</style>

og så i din html:
<span id="minTekst" onmouseover="this.style.color='red';">denne tekst bliver rød</span>
Avatar billede mik789 Nybegynder
14. april 2004 - 08:32 #12
du kan se om brugen af "id" og "class" her: http://www.w3schools.com/css/css_syntax.asp
Avatar billede deamill Nybegynder
14. april 2004 - 08:36 #13
hvorfor skal jeg bruge id=.. når man normalt skriver class="" ?
Avatar billede mik789 Nybegynder
14. april 2004 - 08:38 #14
du skal bruge class hvis den samme style bruges på flere elementer. du bruger id når den KUN bruges på ét element.
Avatar billede deamill Nybegynder
14. april 2004 - 08:39 #15
her er min css:
body {
  color: black;
}
mainMenu {
  color: red;
}


Her er min html:
<FONT face="Arial, Verdana" size=2><b><span id="mainMenu">TEKST</span></b></FONT>

Teksten er sort, den skal være rød!
Avatar billede mik789 Nybegynder
14. april 2004 - 08:42 #16
body {
  color: black;
}
mainMenu {
  color: red;
  font-family: Arial, Verdana;
  font-size: large;
  font-weight: bold;
}

<span id="mainMenu">TEKST</span>
Avatar billede mik789 Nybegynder
14. april 2004 - 08:42 #17
hov, en fejl. id skal angives me "#". Altså:

body {
  color: black;
}
#mainMenu {
  color: red;
  font-family: Arial, Verdana;
  font-size: large;
  font-weight: bold;
}

<span id="mainMenu">TEKST</span>
Avatar billede mik789 Nybegynder
14. april 2004 - 08:45 #18
og hvis "mainMenu" skal genbruges på flere bokse, bruger du class i stedet( der angives med ".". Altså:

body {
  color: black;
}
.mainMenu {
  color: red;
  font-family: Arial, Verdana;
  font-size: large;
  font-weight: bold;
}

<span class="mainMenu">TEKST</span>
Avatar billede mik789 Nybegynder
14. april 2004 - 08:52 #19
lige en ting: det har ingen mening at angive font-family under mainMenu hvis det ikke er fordi den skal være anderledes end fonten i de omgivende elementer. Så du bør også angive en (anden) font-family under body i dit css.
Avatar billede deamill Nybegynder
14. april 2004 - 08:54 #20
takke :-) nu virker det med style sheeted. Og teksten skifter farve når jeg kører musen over teksten. Men teksten skifter ikke farve vha. mit java script når jeg kører musen over feltet i menuen (inden musen rammer teksten). Fordi style sheeted overruler min st.color i javascripted!?
Avatar billede mik789 Nybegynder
14. april 2004 - 08:56 #21
hvordan ser hele scriptet ud?
Avatar billede mik789 Nybegynder
14. april 2004 - 08:57 #22
og præcis hvad vil du have skal skifte farve? er det både en tekst boks og en boks uden om? læg lige html-koden til en "hel" enhed
Avatar billede deamill Nybegynder
14. april 2004 - 09:06 #23
okay, jeg vil have at baggrund og tekst i et <td> i min tabel skifter farver med mouse over. Det gør jeg med mit javascript, og det virker fint. Men efter som teksten i min menu har en anden farve en standard (body text) så bliver jeg nødt til at definere en farve. Det gjorde jeg først med font tag, men så anbefalede du at jeg skulle bruge style, det gør jeg så nu. Men når man definere en farve enten med font tag eller style, så skifter teksten ikke farve med mouse over. Så tilføjede jeg i min span tag (onmouseover="this.style.color='white'). Så skifter baggrund farve som den skal, men teksten skifter først farve når jeg rammer teksten med min muse pil.

Er du med?
Avatar billede deamill Nybegynder
14. april 2004 - 09:12 #24
Her er html koden:
<td bgcolor=<%=farve1%> onMouseOver="chOver(this,'over','<%=farve2%>','<%=farve1%>','<%=farve3%>','<%=farve4%>')" onMouseOut="chOver(this,'out','<%=farve2%>','<%=farve1%>','<%=farve3%>','<%=farve4%>')">
  <span id="mainMenu" onmouseover="this.style.color='<%=farve3%>';" onmouseout="this.style.color='<%=farve4%>';">Menu punkt 1</span>
</td>
Avatar billede mik789 Nybegynder
14. april 2004 - 09:12 #25
jamen så lav den der mouse over på td'en i stedet og angiv både over-baggrundsfarve og over-tekstfarve:

<td onmouseover="this.style.backgroundColor='overFarve'; this.style.color='overSkriftFarve';" onmouseout="this.style.backgroundColor='outFarve'; this.style.color='outTekstFarve';">tekst</td>
Avatar billede mik789 Nybegynder
14. april 2004 - 09:16 #26
hvordan ser funktionen ud som f.eks. <%=farve2%> refererer til?
Avatar billede deamill Nybegynder
14. april 2004 - 09:33 #27
det er asp variabler - Som sagt, så virker det ikke hvis jeg giver teksten en anden farve med font tag eller med style.

Nu har jeg gjordt det helt simpelt:

<td bgcolor=farve1 onmouseover="this.style.backgroundColor='farve2'; this.style.color='farve3';" onmouseout="this.style.backgroundColor='farve1'; this.style.color='farve4';">
Menu punkt 1
</td>

Det virker, men teksten er sort = forkert, teksten skal være = farve4 inden mouse over


---


<td bgcolor=farve1 onmouseover="this.style.backgroundColor='farve2'; this.style.color='farve3';" onmouseout="this.style.backgroundColor='farve1'; this.style.color='farve4';">
<FONT face="Arial, Verdana" size=2 color="farve4">Menu punkt 1</FONT>
</td>

det virker ikke, men teksten har den rigtige farve inden mouse over - Baggrunden skifter dog farve som den skal!



---



<td bgcolor=farve1 onmouseover="this.style.backgroundColor='farve2'; this.style.color='farve3';" onmouseout="this.style.backgroundColor='farve1'; this.style.color='farve4';">
<span id="mainMenu">Menu punkt 1</span>
</td>

virker ikke, der sker det samme som ovenfor



---

<td bgcolor=farve1 onmouseover="this.style.backgroundColor='farve2'; this.style.color='farve3';" onmouseout="this.style.backgroundColor='farve1'; this.style.color='farve4';">
<span id="mainMenu" onmouseover="this.style.color='farve3';" onmouseout="this.style.color='farve4';">Menu punkt 1</span>
</td>

nu skifter teksten også farve på mouse over, men FØRST når musen rammer teksten, ikke (som baggrunden) når musen rammer <td>'en!
Avatar billede mik789 Nybegynder
14. april 2004 - 09:33 #28
nu ved jeg jo ikke hvor du har script funktionen fra, men det ligner noget af et større menu script. og så kan du jo nemt komme i konfkikt med dette hvis du samtidig gør andre ting. Hvis du vil beholde dit script er det bedre at finde ud af hvor i scriptet egenskaberne backckgroundColor og color er angivet og så styre dem der.
Avatar billede mik789 Nybegynder
14. april 2004 - 09:39 #29
Hvad med:

css
#menuTd {
  background-color: farve1;
  color: farve4
}

html
<td id="menuTd" onmouseover="this.style.backgroundColor='farve2'; this.style.color='farve3';" onmouseout="this.style.backgroundColor='farve1'; this.style.color='farve4';">Menu punkt 1</td>
Avatar billede mik789 Nybegynder
14. april 2004 - 09:41 #30
der manglede lige et ";" efter color:

css
#menuTd {
  background-color: farve1;
  color: farve4;
}
Avatar billede mik789 Nybegynder
14. april 2004 - 09:54 #31
Avatar billede deamill Nybegynder
14. april 2004 - 10:05 #32
kanon.. det hjalp med dit eksempel ;-) Jeg ved sgu ikke hvor det gik galt, men nu virker det!!!

Jeg takker mange gange for hjælpen :-)

p.s. du skal lige huske at svare!!

/deamill
Avatar billede mik789 Nybegynder
14. april 2004 - 10:13 #33
ok, du.

jeg har opdateret demoen, dvs. lagt farveskiftet ind i en funktion så kaldet bliver enklere i html'en. Nemlig:

<head>
<style type="text/css">
body {
    color: black;
}
#menuTd {
    background-color: blue;
    color: red;
    padding: 10px;
    font-weight: bold;
    cursor: pointer;
}
</style>

<script type="text/javascript">
function over(elm) {
  elm.style.backgroundColor='green';
  elm.style.color='white';
}
function out(elm) {
  elm.style.backgroundColor='blue';
  elm.style.color='red';
}

</script>
</head>

<body>

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="menuTd" onmouseover="over(this);" onmouseout="out(this);">Menu punkt 1</td>
</tr>
</table>
</body>
Avatar billede deamill Nybegynder
14. april 2004 - 10:18 #34
takker igen ;-)
Avatar billede mik789 Nybegynder
14. april 2004 - 10:20 #35
jamen d'var så lidt...
;-)
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
Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging