Avatar billede kongfjong Nybegynder
25. november 2006 - 19:07 Der er 7 kommentarer og
1 løsning

Aflæse css-værdier og style et area

Dette er lidt et to-i-en spørgsmål. Jeg vil gerne vide hvordan jeg aflæser css-værdier med javascript? I nogle tilfælde kan jeg godt aflæse og teste på .style = 'block' f.eks., mens .style.visibility ikke vil for mig, hvad kan jeg gøre forkert:D

Dernæst så sidder jeg og roder med noget image map, og i den forbindelse, kunne det være superlækkert, hvis jeg kunne få tegnet en border rundt om det area jeg har defineret. Er det muligt, har ikke selv kunne finde ud af det...
Avatar billede psykochicken Nybegynder
25. november 2006 - 19:25 #1
tja....det er lidt nemmere at hjælpe, hvis du viser et konkret eksempel ;o)

/psc
Avatar billede olebole Juniormester
27. november 2006 - 11:49 #2
<ole>

Du kan kun aflæse CSS-værdier, der er sat direkte på elementets style-objekt - ikke i et stylesheet ... så er det ligegyldigt, om det er display eller visibility.

I FF kan du dog bruge:
    http://developer.mozilla.org/en/docs/DOM:window.getComputedStyle

- og i IE:
    http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/currentstyle.asp

Men det er jo ikke X-Browser  =)

/mvh
</bole>
Avatar billede olebole Juniormester
27. november 2006 - 11:50 #3
PS: Borders på area-elementer lader sig ikke tegne
Avatar billede kongfjong Nybegynder
27. november 2006 - 17:31 #4
Hmmm okay, synes bare jeg har kunne teste på display: block og den slags ting før...
Avatar billede olebole Juniormester
29. november 2006 - 15:08 #5
Det har du aldrig kunnet ... _kun_ hvis den er sat direkte på elementet  =)
Avatar billede olebole Juniormester
29. november 2006 - 15:25 #6
- men du kan selvfølgelig godt skrive:

<style type="text/css">
#gnu {
    display: none;
}
</style>

<script type="text/JavaScript">
function swap() {
    var o = document.getElementById("gnu");
    if (o.style.display=="block") o.style.display = "none";
    else o.style.display = "block";
}
</script>

<div onclick="swap()">TEST</div>
<div id="gnu">Et div blabla bla blabla</div>

Grunden til, dette eksempel virker, er, at betingelsen:
    if (o.style.display=="block")

- både er falsk, hvis den pågældende property ikke kan læses - og hvis den kan læses, men er sat til 'none'. Lidt tricky ... og jeg kan godt forstå, hvis du har misforstået virkemåden af scriptet  ;o)
Avatar billede olebole Juniormester
29. november 2006 - 15:27 #7
- og hvis du husker den rette rækkefølge, kan du også få dette til at virke med visibility:

<style type="text/css">
#gnu {
    visibility: hidden;
}
</style>

<script type="text/JavaScript">
function swap() {
    var o = document.getElementById("gnu");
    if (o.style.visibility=="visible") o.style.visibility = "hidden";
    else o.style.visibility= "visible";
}
</script>

<div onclick="swap()">TEST</div>
<div id="gnu">Et div blabla bla blabla</div>
Avatar billede kongfjong Nybegynder
30. november 2006 - 07:27 #8
Ahhh ja self så giver det mening:) Det er i den slags tilfælde jeg har brugt den:)
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