Avatar billede plugin- Nybegynder
05. januar 2004 - 23:30 Der er 23 kommentarer og
1 løsning

Bestemmelse af højde

Jeg har ved at se på nogen scroolbars set at de med javascript m.m. kan finde frem til indholdets højde og derved give scrollbaren et slut og startpunkt at arbejde med

Jeg har "hugget" følgende kode fra et af disse eksempler:

<script type="text/javascript">

function content_height(){
        if (dom) {
            var crossobj=document.getElementById? document.getElementById("content") : document.all.content
            var contentheight=crossobj.offsetHeight
        }
        if (ie4 || ie5) {
            var crossobj=document.getElementById? document.getElementById("content") : document.all.content
            var contentheight=crossobj.offsetHeight
        }
        if (ns4) {
            var crossobj=document.content
            var contentheight=crossobj.clip.height
        }
window.onload=content_height
</script>

<div id="content" style="position:absolute; left:50px; top:0px; width:800px; z-index:1;"><img src="images/bgpic.jpg"></div>


Vil variablen contentheight ikke indeholde højden af billedet eller mangler der noget eller er det helt forkert? Ville være taknemlig for lidt hjælp på den her :P
Avatar billede roenving Novice
05. januar 2004 - 23:44 #1
Hvor har du variablerne dom, ie4/5 og ns4 fra ?-)
Avatar billede plugin- Nybegynder
05. januar 2004 - 23:50 #2
nåh ja.. en mindre forglemmelse.. altså at jeg ikke har sat dem ind.. de står i mit document. Sætter det lige ind i en kommentar
Avatar billede plugin- Nybegynder
05. januar 2004 - 23:53 #3
<script type="text/javascript">
var ver3 = (navigator.appVersion.charAt(0) <= "3")?
    true : false;
var dom = (document.getElementByID)?
    true : false;
var ie4 = (document.all && !document.getElementByID)?
    true : false;
var ns4 = (document.layers) ? true : false;
var ie5 = (document.all && document.getElementByID)?
    true : false;
var ns6 = (document.getElementByID && !document.all)?
    true : false;

function content_height(){
        if (dom) {
            var crossobj=document.getElementById? document.getElementById("content") : document.all.content
            var contentheight=crossobj.offsetHeight
        }
        if (ie4 || ie5) {
            var crossobj=document.getElementById? document.getElementById("content") : document.all.content
            var contentheight=crossobj.offsetHeight
        }
        if (ns4) {
            var crossobj=document.content
            var contentheight=crossobj.clip.height
        }
window.onload=content_height
</script>

<div id="content" style="position:absolute; left:50px; top:0px; width:800px; z-index:1;"><img src="images/bgpic.jpg"></div>
Avatar billede roenving Novice
05. januar 2004 - 23:54 #4
-- øeh, hvad skal contentheight bruges til ?-)

-- der ser ud til at mangle et par linjer ...
Avatar billede roenving Novice
06. januar 2004 - 00:00 #5
function content_height(){
        var crossobj,contentheight;
        if (dom) {
            crossobj=document.getElementById("content");
            contentheight=crossobj.offsetHeight;
        }
        if (ie4 || ie5) {
            crossobj=(document.getElementById)? document.getElementById("content") : document.all.content;
            contentheight=crossobj.offsetHeight
        }
        if (ns4) {
            crossobj=document.content
            contentheight=crossobj.clip.height
        }
        //Her skal der stå noget kode, som bruger contentheight !-)
        //f.eks.
        document.images[0].height = contentheight;
}
window.onload=content_height
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:00 #6
Ja altså.. jeg har ikke skrevet contentheight ud nogen steder i koden, men den skulle gerne indeholde højden i px på indholdet... det ved jeg så ikke om stemmer... er ikke super haj til javascript :/ men det var meningen
Avatar billede roenving Novice
06. januar 2004 - 00:01 #7
Det gør den også, men kun sålænge du er inde i funktionen !-)
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:07 #8
får bare den her fejl konstant: 'contentheight' er ikke defineret :/
Avatar billede roenving Novice
06. januar 2004 - 00:22 #9
-- har du lavet koden om, som jeg viste ?-)

-- der var ikke kun tilføjet et par linjer, næsten alle linjer i den kode var tilrettet !-)
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:23 #10
yupper pastede den lige ind :)

Hvis du har tid så ku jeg da lige maile dig hele documentet...?
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:26 #11
får stadig samme fejl selvom jeg pastede ind.. nu har jeg så prøvet at sætte en:  var contentheight = 0; ind i starten af documentet.. så skriver den ikke fejlen, men jeg ka stadig ik se hvad contentheight er.. tror ikke helt jeg ved hvor jeg skal placere document.write for at den viser mig hvad dens værdi er
Avatar billede roenving Novice
06. januar 2004 - 00:34 #12
-- har du andre scripts med den der window.onload ?-)
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:39 #13
nop... men jeg kan se nu, efter at have sat document.write ind at den faktisk har højden i px i contentheight, så opgaven er løst :> så er d bare mig der ikke ka bruge det rigtigt endnu :> mange tak for hjælpen!!!! du får et par points i hovedet så snart du har skrevet et svar. Også må jeg se om jeg ka finde ud a at bruge det rigtigt det sted i mit doc jeg havde tænkt mig
Avatar billede roenving Novice
06. januar 2004 - 00:43 #14
Når contentheight bliver initialiseret inde i en function vil den kun være levende inde i funktionen, så:

var contentheight;
function content_height(){
        var crossobj;
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:48 #15
kan man så ikke ligge den over i en variabel som man kan bruge i en anden funktion?
Avatar billede roenving Novice
06. januar 2004 - 00:53 #16
Derfor initialiseringen udenfor !-)
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:53 #17
function content_height(){

        if (dom) {
            crossobj=document.getElementById("content");
            contentheight=crossobj.offsetHeight;
        }
        if (ie4 || ie5) {
            crossobj=(document.getElementById)? document.getElementById("content") : document.all.content;
            contentheight=crossobj.offsetHeight
        }
        if (ns4) {
            crossobj=document.content
            contentheight=crossobj.clip.height
        }
var maxtop = contentheight;
}

window.onload=content_height

maxtop vil jeg så bruge i en anden function
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:55 #18
jeg har skrevet var contentheight i toppen, hvilket jo nok er d du mener med initialisering hehe

Jeg prøver så at bruge den i funktionen:

function GoDown() {
    y = y-speed;
        if (dom) {
            window.document.getElementById("content").style.top = y
        }
        if (ie4 || ie5) {
            document.all["content"].style.top= y
        }
        if (ns4) {
            document.layers["content"].top= y
        }
        if (y < -maxtop) {
            y = -maxtop
            setTimeout("StopIt()", 0);
        }
        if (loop) {
            setTimeout("GoDown()", updown);
        }
}

men alligvel virker d som om at den sætter maxtop til 0
Avatar billede roenving Novice
06. januar 2004 - 00:56 #19
Du kan bare bruge 00:43:12 !-)
Avatar billede plugin- Nybegynder
06. januar 2004 - 00:56 #20
tror jeg lige må sidde selv og tygge lidt på den.. hvis du vil have dine point, så må du lige skrive et svar så du ka få dem :>
Avatar billede roenving Novice
06. januar 2004 - 01:00 #21
prøv at sætte contentheight ind i stedet for maxtop, for du bruger jo var inde i funktionen ...

-- at deklarere (initialisere) med var inde i en funktion vil sikre, at den ikke kan læses udenfor !-)
Avatar billede roenving Novice
06. januar 2004 - 01:01 #22
-- og et svar må du da godt få, for den der contentheight inde i GoDown-funktionen burde løse den '-)
Avatar billede plugin- Nybegynder
06. januar 2004 - 01:10 #23
jamen dog :> d virker!! super mange tak :P og her har du dine points!!!! wehu
Avatar billede roenving Novice
06. januar 2004 - 01:14 #24
-- og tak for points ;~}
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