Avatar billede noir04 Nybegynder
14. maj 2007 - 17:59 Der er 8 kommentarer og
1 løsning

Gemme div egenskab i javascript variable

Først vil jeg lige starte med at undskylde overskriften, men jeg aner virkelig ikke hvad jeg skal finde på :) håber I overlever.
Hurtigt videre til problemet.

Jeg er ved at lave en html side med css styling og lidt javascript, landet ligger nu sådan at jeg har fået skrevet en js funktion der kan få mine menuer til at vise og gemme sig, + at de slider ind i billedet (gejl :) ). Problemet består nu I at jeg er nødt til at angive position i div tagget i stedet for I selve css filen, for ellers kan mit js ikke finde ud af at slide med menuen, så langt så godt, men men men.
Firefox og IE er langt fra enige om hvor jeg i virkeligheden har placeret mine divs, derfor har jeg forsøgt at give dem hvert deres css dokument, men det hjælper jo ikke en dyt når positioneringen foregår i html dokumentet, derfor er mit spørgsmål:
Er det muligt for at js placeret i html dokumentet at læse fra css dokumentet, og derved gemme positionen for de enkelte divs, så jeg derved kan nøjes med udelukkende at have positionering i mit css dokument?

Jeg smækker lige html og css dokumentet på:

index.html:

<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>

<!-- Testing for webbrowser -->
    <link href="css/typostyle.css"         rel="stylesheet" type="text/css" />
    <link href="css/layoutstyle.css"    rel="stylesheet" type="text/css" />   
<!--[if gte IE 6]>
    <link href="css/ielayoutstyle.css"        rel="stylesheet" type="text/css" />   
<![endif]-->

<title>FHF</title>



<script type="text/javascript">
<!--

var activemenu = null;
var activesubmenu = null;
var activesubsubmenu = null;
function startmove(ident,startx,starty)
{
    removeElement(activemenu);
    removeElement(activesubmenu);
    removeElement(activesubsubmenu);
    var obj = document.getElementById(ident);
    activemenu = ident;
    moveObject(ident,startx,starty,parseInt(obj.style.left),parseInt(obj.style.top));
}
function movesub(ident,startx,starty)
{
    removeElement(activesubmenu);
    removeElement(activesubsubmenu);
    var obj = document.getElementById(ident);
    activesubmenu = ident;
    moveObject(ident,startx,starty,parseInt(obj.style.left),parseInt(obj.style.top));
}
function movesubsub(ident,startx,starty)
{
    removeElement(activesubsubmenu);
    var obj = document.getElementById(ident);
    activesubsubmenu = ident;
    moveObject(ident,startx,starty,parseInt(obj.style.left),parseInt(obj.style.top));
}


function moveObject(elementid,curx,cury,endx,endy)
{
    var divisor = 4;
    var obj = document.getElementById(elementid);
    var movex = endx-curx;
    var movey = endy-cury;
    obj.style.visibility = "visible";
    if(movey != 0)
    {   
        if(Math.abs(movey/divisor) >= 1)
        {
        cury = parseInt(cury + (movey/divisor));
        obj.style.top = cury + "px";
        }
        else
        {
            obj.style.top = endy + "px";
            cury = endy;
        }
    }
    if(movex != 0)
    {
        if(Math.abs(movex/divisor) >= 1)
        {
        curx = parseInt(curx + (movex/divisor));
        obj.style.left = curx + "px";
        }
        else
        {
            obj.style.left = endx + "px";
            curx = endx;
        }
    }
    if(curx != endx || cury != endy){
    window.setTimeout('moveObject(\'' + elementid + '\',' + curx + ',' + cury + ',' + endx + ',' + endy + ')',25);
    }
}
function removeElement(elementid)
{
    if(elementid != null)
    {
        var obj = document.getElementById(elementid)
        obj.style.visibility = "hidden";
    }
}
// -->
</script>

</head>

<body>

      <div id="centerwrapper">
           
        <div id="wrapper">
           
            <div id="wrappermenubar">
               
                <div id="menubar">
                    <ul class="ulmenu">
                        <li><a href="index.html">Forside</a></li>
                        <li><a href="#" onMouseUp="startmove('guides',290,0)">Guides</a></li>
                        <li><a href="#" onMouseUp="startmove('staten',290,0)">Staten</a></li>
                        <li>Nyttige links</li>
                        <li><a href="#" onMouseUp="startmove('forbruger',290,0)">Forbruger</a></li>
                    </ul>
                </div>
               
                <div id="guides" style="top: 26px;left: 290px;">
                    <ul class="ulmenu">
                        <li><a href="#" onMouseUp="movesub('budget',290,0)">Budget guide</a></li>
                        <li><a href="madlavning.html">Madlavning</a></li>
                        <li><a href="#" onMouseUp="movesub('bolig',290,0)">Bolig</a></li>
                        <li><a href="stikordsregister.html">Stikordsregister</a></li>
                    </ul>               
                </div>
               
                    <div id="budget" style="top: 48px; left: 290px;">
                        <ul class="ulmenu">
                            <li><a href="skabelon.html">Skabelon</li>
                            <li><a href="sparetips.html">Spare tips</li>
                        </ul>               
                    </div>
                   
                    <div id="bolig" style="top: 48px; left: 290px;">
                        <ul class="ulmenu">
                            <li><a href="kollegie.html">Kollegie</li>
                            <li><a href="#" onMouseUp="movesubsub('lejlighed',538,0)">Lejlighed</li>
                        </ul>               
                    </div>                   
                   
                        <div id="lejlighed" style="    top: 48px; left: 538px;">
                            <ul class="ulmenu">
                                <li><a href="leje.html">Leje</a></li>
                                <li><a href="koeb.html">Køb/Forældrekøb</a></li>
                            </ul>               
                        </div>                                           
               
                <div id="staten" style="top: 26px;left: 290px;">
                    <ul class="ulmenu">
                        <li><a href="#" onMouseUp="movesub('penge',290,0)">Penge</a></li>
                        <li><a href="#" onMouseUp="movesub('lovgivning',290,0)">Lovgivning</a></li>
                        <li>Post/flyttekort</li>
                        <li>Læge/tandlæge</li>
                    </ul>               
                </div>
               
                    <div id="penge" style="top: 48px; left: 290px;">
                        <ul class="ulmenu">
                            <li>Boligstøtte</li>
                            <li>SU</li>
                        </ul>               
                    </div>                                   
               
                    <div id="lovgivning" style="top: 48px; left: 290px;">
                        <ul class="ulmenu">
                            <li>Licens</li>
                            <li>Flyttemelding</li>
                        </ul>               
                    </div>                                   
               
                <div id="nyttige">

                </div>
               
                <div id="forbruger" style="top: 26px;left: 290px;">
                    <ul class="ulmenu">
                        <li>Købe / Reklamationsret</li>
                        <li>Internet/telefoni</li>
                        <li>Forsikring</li>
                    </ul>               
                </div>                       
               
            </div>
           
            <div id="mainframe">
               
                <div id="textbg">
               
                </div>
               
                <div id="text">
                    <h1>Når du har besluttet at flytte</h1>
                    <p>
                        Flytte hjemmefra - to ord der for nogle rummer uro - bort fra de trygge rammer
                        og ud i livet, måske til studier eller job i en anden by. <br />
                        For andre betyder de befrielse; endelig egen bolig, egen livsstil, egne beslutninger.
                        Om du flytter hjemmefra glad eller tung om hjertet venter der masser af opgaver,
                        som du nu er ansvarlig for.<br />
                        På denne hjemmeside har vi samlet alt du har brug for, når du skal flytte hjemme.
                        Brug den både før og efter du er flyttet: Der er pludselig mange ting du selv skal
                        tage stilling til, men her kan du få gode råd om f.eks. lovgivning, madlavning, økonomi,
                        tøjvask - og meget mere af samme slags.
                  </p>   
                </div>
            </div>
        </div>
      </div>
</body>

</html>

layoutstyle.css:
/* CSS Document */
#centerwrapper
{
    text-align: center;
}

#wrapper
{
    position: relative;
    width:980px;
    height:595px;
    background-image: url('../img/frontpage-background.jpg');
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}

#wrappermenubar
{
    position: absolute;
    width:980px;
    height:80px;
    top: 0px;
    left: 0px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}

#menubar
{
    position: absolute;
    width:680px;
    height:5px;
    top: -10px;
    left: 290px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
    z-index: 500;
}

#mainframe
{
    position: absolute;
    width:980px;
    height:480px;
    top: 115px;
    left: 0px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}

#text
{
    position: absolute;
    overflow: auto;
    width:450px;
    height:405px;
    top:40px;
    left:325px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}

#textbg
{
    position: absolute;
    background-color:#FFFFFF;
    filter:alpha(opacity=15);
    opacity: .15;
    width:450px;
    height:405px;
    top:40px;
    left:325px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}

ul.ulmenu li
{
    background-color:#fa8008;
    float:left;
    margin: 5px;
    padding: 2px;
    width: 110px;
    text-align:center;
   
}

ul.ulmenu
{
    list-style-type:none;
}

/* Menu divs */
#guides
{
    position: relative;
    width:645px;
    height:0px;
    text-align: left;
    visibility:hidden;
}

#budget
{
    position: absolute;
    width:645px;
    height:0px;
    text-align: left;
    visibility:hidden;
}

#bolig
{
    position: absolute;
    width:645px;
    height:0px;
    text-align: left;
    visibility:hidden;
}

#lejlighed
{
    position: absolute;
    width:445px;
    height:0px;
    text-align: left;
    visibility:hidden;
}

#staten
{
    position: absolute;
    width:645px;
    height:0px;
    text-align: left;
    visibility:hidden;
}

#penge
{
    position: absolute;
    width:645px;
    height:0px;
    text-align: left;
    visibility:hidden;
}

#lovgivning
{
    position: absolute;
    width:645px;
    height:0px;
    text-align: left;
    visibility:hidden;
}

#forbruger
{
    position: absolute;
    width:645px;
    height:0px;
    text-align: left;
    visibility:hidden;
}
Avatar billede noir04 Nybegynder
15. maj 2007 - 13:29 #1
Fandt på noget andet :)
Avatar billede olebole Juniormester
15. maj 2007 - 14:51 #2
<ole>

Men hvorfor disable'er du mon aktivt store og essentielle dele af CSS i IE6 med linjen:
    <?xml version="1.0" encoding="ISO-8859-15"?>

Så er der jo ikke noget at sige til, du er nødt til at bruge et specielt stylesheet til IE6 ... og endnu er der jo ikke kommet en IE, der understøtter XHTML  =)

/mvh
</bole>
Avatar billede noir04 Nybegynder
15. maj 2007 - 15:14 #3
Fisk.. Det er en header vi har fået af vores lærer som hun siger vi SKAL bruge - Noget med w3 validering.

Er der evt. noget jeg kan ændre det til der ville løsne lidt op for problemet? Og er det rent faktisk firefox der får positionen rigtig?
Avatar billede olebole Juniormester
15. maj 2007 - 15:35 #4
Hun ved formodentlig ikke det allerførste om XHTML. Det er der _meget_ få web-undervisere, der gør - og det lyder ikke, somom hun er én af de vidende  ;o)

Ja, det er formodentlig FF, der viser det korrekt. Dér virker din CSS nemlig

Prøv at læse:
    http://www.eksperten.dk/artikler/537
    http://www.eksperten.dk/artikler/538
Avatar billede noir04 Nybegynder
15. maj 2007 - 16:40 #5
Synes ikke lige umiddelbart at det gav nogen ændring at ændre encodingen, men mange tak for dine kommentare og vil da kigge nærmere på din artikler :)

Tror også godt at vi kan blive enige om at webundervisere mere eller mindre er en talende bog, og intet andet :)
Avatar billede roenving Novice
15. maj 2007 - 17:37 #6
-- det er ikke ændring af encoding, der er problemet (selvom jeg zq nok ikke ville vælge iso 8859-15 under nogen omstændigheder !-)

-- nej, det er kommentaren (som tilfældigvis indeholder et xhtml-direktiv bl.a. med angivelse af encding !-) _før_ doctype-tagget, som direkte sender IE6- i quirks-mode og dermed ophører med at understøtte en hulens masse helt grundlæggende css ,-(
Avatar billede noir04 Nybegynder
15. maj 2007 - 18:07 #7
Ja ok, men jeg synes faktisk at ligemeget hvad jeg forsøger så kan jeg ikke få det til at se ens ud i firefox og ie uden at skulle bruge et ekstra css dokument :/
Avatar billede olebole Juniormester
16. maj 2007 - 13:51 #8
Prøv at uploade dokumentet, så vi kan se det  =)

Hvis du laver et validt XHTML1.1 dokument, kan IE ikke vise det, men vil downloade det i stedet!
At det ikke sikkert sker for dig skyldes, at selve koden godt nok er valid - men derudover kræves det eksplicit i standarden (og i W3C's FAQ om XHTML), at et XHTML1.1 dokument _skal_ serves med MIME-typen "application/xhtml+xml" ... du server det uden tvivl som "text/html".

Fortæller jeres lærer Jer ikke den slags, burde hun selv sætte sig på skolebænken. Det er helt elementær viden ... og man bør ikke undervise i noget, man ikke selv kan. Det ville undre mig såre, om hun nogensinde selv har skrevet et brugbart XHTML-dokument  ;o)
Avatar billede noir04 Nybegynder
16. maj 2007 - 14:10 #9
Nu har jeg uploadet det på: http://noir04.net/fhf/
Ved ikke om du så kan finde ud af det :]

Jeg har i hvert fald ikke fået det at vide, så enten aner hun ikke hvad hun laver, eller så sover jeg for meget i undervisningen! :D
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