Avatar billede danino Nybegynder
25. februar 2005 - 20:56 Der er 18 kommentarer og
1 løsning

Oversættelse til firefox kompatibel kode.

Det skal lige siges med det samme, at jeg bestemt ikke er nogen haj til javascript...

Nå, men jeg har da fundet følgende kode, og rettet den til, så den kan bruges på min side. Problemet er bare at mouseover-effekten ikke virker i mozillas firefox... Jeg går ud fra at det er noget med getElementById der skal "oversættes"... Men jeg er ikke sikker.. Håber nogen kan hjælpe..

Koden:
<tr><td onclick="location.href='index.php'" style="height:18px;" id="myspan" onMouseover="document.getElementById('myspan').attributes['class'].value = 'menu'" onMouseout="document.getElementById('myspan').attributes['class'].value = 'normal'">Forside</div></td></tr>

På forhånd tak :)
Avatar billede michael_stim Ekspert
25. februar 2005 - 21:31 #1
Som jeg kan se det, har du en slut-div, men ingen start-div. Eller også er den placeret forkert.
Avatar billede michael_stim Ekspert
25. februar 2005 - 21:33 #2
Har du en <div> foran <tr>?
Avatar billede danino Nybegynder
25. februar 2005 - 22:36 #3
Nej, jeg har ikke nogen start-div... Det er en efterladenskab efter jeg rodede lidt rundt.. men det løste ikke problemet at fjerne den...
Avatar billede olebole Juniormester
26. februar 2005 - 00:12 #4
<ole>

document.getElementById('myspan').className = 'menu'

Det er i øvrigt en rigtig dårlig idé at skifte klasse på HTML-elementer. Det performer ekstremt dårligt, da browseren hvergang skal spytte et nyt DOM-træ ud og genberegne hele siden.
Det er altid langt bedre at skifte de enkelte style-properties på elementet - evt. i en funktion.

/mvh
</bole>
Avatar billede danino Nybegynder
26. februar 2005 - 14:14 #5
Jeg ved godt det er bedst at skifte style properties, men jeg ved ikke hvordan man skifter flere på en gang... Kan du hjælpe med det? Så kan du få flere points...
Avatar billede danino Nybegynder
26. februar 2005 - 14:14 #6
Og forresten... Tak... Det virkede...
Avatar billede roenving Novice
26. februar 2005 - 14:17 #7
Hvor mange er det, og hvordan skal der skiftes ?-)

-- for umiddelbart er det nemmest at skifte i en funktion, og hvordan den skal se ud, afhænger af, hvilke properties, der skal skiftes, og om de skal skiftes frem og tilbage mellem to faste sæt værdier, eller om der er individuelle indstillinger for hvert element, som skal ændres ...
Avatar billede danino Nybegynder
26. februar 2005 - 14:20 #8
Der er pt. 4 der skal skiftes... Det er i en menu... Jeg skifter nu mellem disse to klasser:
.menu{
    color: White;
    background-color: #007965;
    cursor: pointer;
}
.normal{
    color: Black;
    background-color: White;
}
Avatar billede danino Nybegynder
26. februar 2005 - 14:22 #9
Siden kan ses her:
http://fuckhoved.dk/coloplast/
(igen kommentarer til domænenavnet... hehe... det er ikke mit eget) :)
Avatar billede roenving Novice
26. februar 2005 - 14:29 #10
.normal{
    color: black;
    background-color: white;
    cursor:pointer;
}

-- du skal lige have cursoren på under alle omstændigheder, for en cursor på et element virker alligevel kun når musen er over !-)

<script type="text/javascript">
function inOut(elm,action){
  var st = elm.style;
  st.color = (action=='over')?'white':'black';
  st.backgroundColor = (action=='over')?'#007965':white;
}
</script>

<tr><td class="normal" onclick="location.href='index.php'" style="height:18px;" id="myspan" onmouseover="inOut(this,'over')" onmouseover="inOut(this,'out')">Forside</td></tr>
Avatar billede danino Nybegynder
26. februar 2005 - 14:35 #11
Det virker desværre ikke helt... Baggrunden bliver grøn, og teksten bliver hvis, når man har musen over, men så bliver den altså også ved med at være sådan, selv om man flytter musen... :(
Avatar billede danino Nybegynder
26. februar 2005 - 14:35 #12
teksten bliver hvis=teksten bliver hvid :)
Avatar billede roenving Novice
26. februar 2005 - 14:39 #13
Argh, jeg har glemt at rette den anden mouseover til mouseout ,-(
Avatar billede danino Nybegynder
26. februar 2005 - 14:43 #14
Jep... Så var den der... Den havde jeg heller ikke set... I øvrigt satte jeg også '-tegn rundt om white, så det bliver til st.backgroundColor = (action=='over')?'#007965':'white';

Men mange tak for hjælpen...

Svar her, for ta få points
http://www.eksperten.dk/spm/594849
:)
Avatar billede roenving Novice
26. februar 2005 - 14:46 #15
*lol*

-- jeg måtte lige tygge logikken et par gange, før jeg havde den, og den sidste medførte altså en fejl ...

Tak !-)
Avatar billede olebole Juniormester
26. februar 2005 - 16:50 #16
En anden måde er:

<script type="text/JavaScript">
var outStyles = {
    "textDecoration":"none",
    "color":"red",
    "backgroundColor":"yellow"
};
var overStyles = {
    "textDecoration":"underline",
    "color":"yellow",
    "backgroundColor":"red"
};

function swap(elm, dir) {
    var o = (dir=="over")? overStyles : outStyles;
    for (x in o) {
        elm.style[x] = o[x];
    }
}
</script>

- og så:
    <a href="side.html" onmouseover="swap(this, 'over')" onmouseout="swap(this, 'out')">TEST</a>

Så kan du selv fylde properties i de to objekter
Avatar billede olebole Juniormester
26. februar 2005 - 17:05 #17
- og måske en anelse sjovere:

<script type="text/JavaScript">
var outStyles = {
    "hest":{
        "textDecoration":"none",
        "color":"red",
        "backgroundColor":"yellow"
    },
    "gnu":{
        "textDecoration":"none",
        "color":"blue",
        "backgroundColor":"yellow"
    }
};
var overStyles = {
    "hest":{
        "textDecoration":"underline",
        "color":"yellow",
        "backgroundColor":"red"
    },
    "gnu":{
        "textDecoration":"none",
        "color":"yellow",
        "backgroundColor":"blue"
    }
};

function swap(elm, dir) {
    var o = (dir=="over")? overStyles : outStyles;
    for (x in o) {
        elm.style[x] = o[elm.className][x];
    }
}
</script>

- og så:
    <a class="hest" href="side.html" onmouseover="swap(this, 'over')" onmouseout="swap(this, 'out')">TEST</a>

    <a class="gnu" href="side.html" onmouseover="swap(this, 'over')" onmouseout="swap(this, 'out')">TEST</a>
Avatar billede olebole Juniormester
26. februar 2005 - 17:08 #18
Njaahh ... så skal den sidste funktion vel hedde:

function swap(elm, dir) {
    var o = (dir=="over")? overStyles : outStyles;
    for (x in o[elm.className]) {
        elm.style[x] = o[elm.className][x];
    }
}
Avatar billede olebole Juniormester
26. februar 2005 - 17:11 #19
- eller:

function swap(elm, dir) {
    var o = (dir=="over"? overStyles : outStyles)[elm.className];
    for (x in o) {
        elm.style[x] = o[x];
    }
}

... frit slag mellem de to sidste  :)
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