Avatar billede cronaldo Nybegynder
31. januar 2009 - 23:06 Der er 10 kommentarer og
1 løsning

Få javascript til at udregne højden på vinduet

Hej eksperter..

Hvordan kan man få javascript til at udregne hvor højt browser vinduet er? :)
Avatar billede showsource Seniormester
01. februar 2009 - 07:04 #1
flg. er lånt fra noget "lightbox" halløj:

var windowWidth, windowHeight;

    if (self.innerHeight) {    // all except Explorer
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
    }
Avatar billede cronaldo Nybegynder
01. februar 2009 - 22:42 #2
og hvis jeg skal bruge det til at sætte højden på et element onload .. højden skal være vinduets højde - 400 px ..
Avatar billede showsource Seniormester
01. februar 2009 - 23:00 #3
Hvis du ved det skal være 400, hvorfor så bruge javascript til at finde højden?

Og nej, umiddelbart ville jeg la' script afvikles som det sidste, eller i hvertfald EFTER at element er loadet i browser.
Avatar billede cronaldo Nybegynder
01. februar 2009 - 23:11 #4
jamen det skal være:

browserens højde - 400 px .. altså er det variabelt efter hvor høj browseren er ved load..
det er fordi i CSS kan man ikke lave en højde sådan det minimale hele min <div> er er 100%, ligesom man kan med tables (height="*")
Avatar billede showsource Seniormester
01. februar 2009 - 23:13 #5
Det forstod jeg ikke lige ?

Jeg bruger flg. til at vise en ( to ) div.
En div som fylder hele vinduet, og en anden ovenpå med en formular:

function ShowForm () {

var windowWidth, windowHeight;

    if (self.innerHeight) {    // all except Explorer
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
    }   
   

    back_ref = get_id('LinkForm');

    back_ref.style.display = 'block';
    back_ref.style.visibility = 'visible';
    back_ref.style.width = windowWidth+'px';
    back_ref.style.height = windowHeight+'px';


    var w_diff = Math.floor((windowWidth-480)/2);
    w_diff = (w_diff > 0 ? w_diff : 0);

    post_ref = get_id('new_formular');
    post_ref.style.display = 'block';
    post_ref.style.visibility = 'visible';
    post_ref.style.left = w_diff+'px';

window.onresize = new Function("ShowForm()");

}
Avatar billede showsource Seniormester
01. februar 2009 - 23:15 #6
function get_id ($id) {

    if (document.all && document.getElementById) {
    return document.all($id);
    } else if (!document.all && document.getElementById) {
    return document.getElementById($id);
    } else {
    return false;
    }
}
Avatar billede showsource Seniormester
01. februar 2009 - 23:16 #7
Men, det er lidt "skrammelkode", omend det virker ! :O)
Avatar billede cronaldo Nybegynder
01. februar 2009 - 23:22 #8
er det cross-browser..

jamen jeg har et design ala: www.blackanddecker.dk , men jeg kan ikke finde en kommando i CSS der automatisk udvidder min <div> , da den skal vokse til højden "100%" selvom der ikke er indhold til at fylde det ud :(
Avatar billede cronaldo Nybegynder
01. februar 2009 - 23:37 #9
Hvis jeg har en table med id: contenttable , hvordan får jeg så ovenstående til at virke ?
Avatar billede showsource Seniormester
02. februar 2009 - 09:52 #10
cirkus:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Resize div</title>

<script type="text/javascript">

function set_height() {

var windowHeight = 100;

    if (self.innerHeight) {    // all except Explorer
    windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
    windowHeight = document.body.clientHeight;
    }   
   

    if(ref = document.getElementById('contenttable')) {

    ref.style.height = windowHeight+'px';
    window.onresize = new Function("set_height()");
    }

}

</script>

</head>

<body style="margin: 0px; padding: 0px;">


<div id="contenttable" style="width: 160px; background-color: blue; color: white">

Her er noget

</div>

<script type="text/javascript">
set_height();
</script>

</body></html>
Avatar billede cronaldo Nybegynder
02. december 2009 - 00:25 #11
lukker.
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