Avatar billede supremebot Nybegynder
28. september 2006 - 17:48 Der er 38 kommentarer og
2 løsninger

body heigth?

jeg har et problem

hvordan finder jeg ud af body's højde? det er ikke noget problem at finde ud af højden på body når der ikke er scrollbar på skærmen men når der er det kan jeg ikke finde højden, kun højden på det jeg kan se på skærmen

håbe i forstår hvad jeg mener :-)
Avatar billede ilflue Nybegynder
28. september 2006 - 18:00 #1
document.body.scrollHeight
Avatar billede ilflue Nybegynder
28. september 2006 - 18:04 #2
sludder

if(document.body.offsetHeight > document.body.scrollHeight)
  var str = document.body.offsetHeight;
else
  var str = document.body.scrollHeight;

Så virker den i mere end en browser :)
Avatar billede mclemens Nybegynder
28. september 2006 - 18:21 #3
Hvis vi ikke kører med vores IE i
quirks mode kan vi måske gøre sådan her:

window.onload=function(){
alert(document.documentElement.scrollHeight);
}
Avatar billede mclemens Nybegynder
28. september 2006 - 18:22 #4
[ når der ikke er scrollbar på skærmen ]
Argg, min fejl - hvis scrollbaren er væk duer det ikke :D
Avatar billede mclemens Nybegynder
28. september 2006 - 18:31 #5
*ilflue* Kan det ikke forkortes ned til
alert(document.body.offsetHeight); ?
- Forudsat at der er en doctype ?
Avatar billede supremebot Nybegynder
28. september 2006 - 18:32 #6
Iflue det syntes jeg også jeg har prøvet og det virker, bare ikke i firefox. du skal regne med at indenholdet af diven svare ikke til højeden
Avatar billede mclemens Nybegynder
28. september 2006 - 18:35 #7
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style type="text/css">
html{overflow:hidden;}
</style>

<script type="text/javascript">

window.onload=function(){
  alert(document.getElementById("test").offsetHeight  + "- offsetHeight");
  alert(document.getElementById("test").clientHeight + "- clientHeight");
}

</script>

</head><body>

<div id="test" style="height:100px;border:100px solid #000;">test</div>

</body></html>
Avatar billede mclemens Nybegynder
28. september 2006 - 18:36 #8
[ Iflue det syntes jeg også jeg har prøvet og det virker, bare ikke i firefox. du skal regne med at indenholdet af diven svare ikke til højeden ] Eller var det en anden årsag ?
Avatar billede mclemens Nybegynder
28. september 2006 - 18:38 #9
Har set det du mener nu :o)
Avatar billede mclemens Nybegynder
28. september 2006 - 18:40 #10
Lidt besværligt, men hvad med:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style type="text/css">
html{overflow:hidden;}
</style>

<script type="text/javascript">

window.onload=function(){
  dd=document.documentElement;
  s=dd.style;s.overflow="auto";
  h=dd.scrollHeight;
  s.overflow="hidden";
 
alert(h);
}

</script>

</head><body>
<div id="test" style="height:10000px;position:absolute;background:red;">test</div>
</body></html>
Avatar billede supremebot Nybegynder
28. september 2006 - 18:42 #11
nej firefox siger "fejl i tolkning af værdi for 'height'. erklæring droppet til

if(document.body.offsetHeight > document.body.scrollHeight){
  var str = document.body.offsetHeight;
}else{
  var str = document.body.scrollHeight;
}
document.getElementById("testinfo1").style.height = str+" px";
document.getElementById("testinfo1").style.display = "inline";   
document.getElementById("testinfo2").style.display = "inline";
Avatar billede ilflue Nybegynder
28. september 2006 - 18:44 #12
Ok. Skal lige have det her helt klart.
Det du vil have størelsen på, er INDHOLDET ikk??
Det vil sige at hvis du skriver en tekst med 20px, så skal resultatet være 20..???
Avatar billede supremebot Nybegynder
28. september 2006 - 18:44 #13
hvorfor vil du sætte overflow det kan jeg ikke se nogen mening med. jeg ønske jo ikke at få scrollbarene fjernet
Avatar billede mclemens Nybegynder
28. september 2006 - 18:45 #14
str+" px"; <- mellemrum ?
Avatar billede mclemens Nybegynder
28. september 2006 - 18:47 #15
18:44:54 ... troede at scrollbaren var væk iflg. spørgsmålet ... læste det
forkert :D ... så skulle 28/09-2006 18:21:26 virke alligevel ...
Avatar billede mclemens Nybegynder
28. september 2006 - 18:52 #16
^ - nej, det gør den ikke hvis det kun er indholdet hvis
det kun var indholdets højde du skulle have fat i
Avatar billede mclemens Nybegynder
28. september 2006 - 18:52 #17
(altid rart at modsige sig selv)
Avatar billede supremebot Nybegynder
28. september 2006 - 18:55 #18
nej menning er at der skal være et halvgennemsigtigt png der skal dækker hele hele siden oven på den kommer der så en div igen der det det som der skal så på siden.

eksempel her: for det virker jo i ie.
http://www.egmont-hs.dk/Untitled-1.jpg
http://www.egmont-hs.dk/Untitled-2.jpg

derfor kommer den div jo ikke til at indeholde noget og i firefox bliver diven ikke højre en indenholdet
Avatar billede mclemens Nybegynder
28. september 2006 - 18:56 #19
28/09-2006 18:42:53 med *ilflue*'s burde virke ...
- men height definering samtidig med at du sætter den
til inline ... virker ikke helt ...
Avatar billede ilflue Nybegynder
28. september 2006 - 19:02 #20
Hvis du indsætter alt ind imellem et div tag, uden at sætte størelsen på diven.
Så vil diven få samme størelse som indholdet, og så kan bruge den jeg lagde ind, bare med getElementById ...
Avatar billede supremebot Nybegynder
28. september 2006 - 19:03 #21
det var noget være sluder jeg fik skrevet til at starte med prøver lige igen. den div der skal værer body højde kommer ikke til at indehole noget men den har css på.

i ie her den:
position:absolute; left: 0px; top: 0px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='gfx/matte.png',sizingMethod='scale');

og i firefox her den: position:absolute; left: 0px; top: 0px; background-image:url(gfx/matte.png); background-repeat:repeat

ok det virker. det der ikke virker er at jeg kan ikke få højden til at passe med højden på body i firefox
Avatar billede ilflue Nybegynder
28. september 2006 - 19:03 #22
Hvis vi snakker om det samme, synes ikke helt jeg er med på hvad du vil....
Avatar billede supremebot Nybegynder
28. september 2006 - 19:06 #23
lige nu ser den sådan ud.
men firefox siger "fejl i tolkning af værdi for 'height'. erklæring droppet"

function infoboxtest(id,navn, str, dim ,dat,vist, opret){

if(document.body.offsetHeight > document.body.scrollHeight){
  var str = document.body.offsetHeight;
}else{
  var str = document.body.scrollHeight;
}
document.getElementById("testinfo1").style.height = str+" px";
document.getElementById("testinfo1").style.display = "inline";   
document.getElementById("testinfo2").style.display = "inline";

}

function infoboxclose(){
document.getElementById("testinfo1").style.display = "none";
document.getElementById("testinfo2").style.display = "none";
}



<body>.....
<div class="bgdiv" style="display:none; vertical-align:middle; position:absolute; left: 0px; top: 0px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='gfx/matte.png',sizingMethod='scale');" id="testinfo1" >
&nbsp;
</div>
<div class="bgdiv" style="display:none; vertical-align:middle; position:absolute; left: 0px; top: 0px;" id="testinfo2">

<center>
<table width="236" border="0" cellspacing="0" cellpadding="0" >
<tr>
    <td>
        <img src="gfx/blank.gif" class="bgdiv">
    </td>
</tr>
<tr valign="middle" style="vertical-align:middle">
    <td valign="middle" style="vertical-align:middle">
   
<table width="236" border="0" cellspacing="0" cellpadding="0" >
    <tr>
        <td colspan="3"><img src="gfx/popup_top1.gif" alt=""><img src="gfx/popup_top2.gif" alt="luk" onclick="infoboxclose()" style="cursor:hand"></td>
    </tr>
    <tr>
        <td style="background-image:url(gfx/popup_ven.gif); background-repeat:repeat-y; width:13px; background-color:#FFFFFF; ">&nbsp;</td>
        <td width="210" valign="top" style="background-color:#FFFFFF; ">
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr align="center">
                    <td colspan="2"><strong>Navn:</strong> </td>
                </tr>
                    <tr align="center">
                    <td colspan="2"><a href="www.sol.dk">navn</a></td>
                </tr>
                <tr align="center">
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                </tr>
                <tr align="center">
                    <td width="50%" class="infoboxsplit"><strong>St&oslash;rrelse:</strong></td>
                    <td width="50%"><strong>Dimention:</strong></td>
                </tr>
                <tr align="center">
                    <td width="50%"class="infoboxsplit">'+ str +'</td>
                    <td width="50%">'+ dim +'</td>
                </tr>
                <tr align="center">
                    <td width="50%"class="infoboxsplit">&nbsp;</td>
                    <td width="50%">&nbsp;</td>
                </tr>
                <tr align="center">
                    <td class="infoboxsplit"><strong>Taget d.:</strong></td>
                    <td><strong>Upload af:</strong></td>
                </tr>
                <tr align="center">
                    <td class="infoboxsplit">'+ dat +'</td>
                    <td>'+ opret +'</td>
                </tr>
                <tr align="center">
                    <td class="infoboxsplit">&nbsp;</td>
                    <td>&nbsp;</td>
                </tr>
                <tr align="center">
                    <td class="infoboxsplit"><strong>Vist:</strong></td>
                    <td>&nbsp;</td>
                </tr>
                <tr align="center">
                    <td class="infoboxsplit">'+ vist +' gange</td>
                    <td>&nbsp;</td>
                </tr>
            </table>
            <strong>Kategoriger:</strong><br>
            <div align="left" style="overflow: auto;height: 32px; margin-left:10 px;" id="infoboxkat'+id+'">'+kat+'<br></div>' +
        </td>
        <td style="background-image:url(gfx/popup_hoj.gif); background-repeat:repeat-y; width:13px; background-position:right; background-color:#FFFFFF;">&nbsp;</td>
    </tr>
    <tr>
        <td height="9" colspan="3"><img src="gfx/popup_bund.gif" alt="" width="236" height="9"></td>
    </tr>
</table>
</td>
</tr>
</table>
</center>
</div>
Avatar billede mclemens Nybegynder
28. september 2006 - 19:09 #24
[ men firefox siger "fejl i tolkning af værdi for 'height'. erklæring droppet" ]
Det skrev jeg i 28/09-2006 18:45:46 ;)
str+" px"; -> str+"px";
Avatar billede supremebot Nybegynder
28. september 2006 - 19:10 #25
i firefox ser den sådan ud http://www.egmont-hs.dk/Untitled-3.jpg
det vil sige at diven kun er en linie høj pga den sige "fejl i tolkning af værdi for 'height'. erklæring droppet" og derfor aldrig for sat højden
Avatar billede ilflue Nybegynder
28. september 2006 - 19:12 #26
document.getElementById("test").scrollLeft

if(document.getElementById("testinfo2").offsetHeight > document.getElementById("testinfo2").scrollHeight){
  var str = document.getElementById("testinfo2").offsetHeight;
}else{
  var str = document.getElementById("testinfo2").scrollHeight;
}
Avatar billede supremebot Nybegynder
28. september 2006 - 19:12 #27
fjollet

ak det var jo så bare det troe ellers der skulle være mellemrum.

nå men tak send et svar hvis du vil have points
Avatar billede mclemens Nybegynder
28. september 2006 - 19:12 #28
document.getElementById("testinfo1").style.display = "inline"; 
document.getElementById("testinfo2").style.display = "inline";

^ - Måske skal de også rettes til block istedet for inline ...
Avatar billede ilflue Nybegynder
28. september 2006 - 19:13 #29
Prøv det istedet. Så tager du højden af Diven stedet for BODYen. Måske hjælper det
Avatar billede supremebot Nybegynder
28. september 2006 - 19:13 #30
det virker nu
Avatar billede ilflue Nybegynder
28. september 2006 - 19:13 #31
Super :)
Avatar billede mclemens Nybegynder
28. september 2006 - 19:14 #32
Kast et svar ilflue ...
Det var din løsning ;)
Avatar billede supremebot Nybegynder
28. september 2006 - 19:14 #33
det var var bare dette der var galt str+" px"; til str+"px";
Avatar billede mclemens Nybegynder
28. september 2006 - 19:15 #34
^ - En deler så ilflue ?
Avatar billede ilflue Nybegynder
28. september 2006 - 19:16 #35
Ja så gerne :p
Avatar billede mclemens Nybegynder
28. september 2006 - 19:17 #36
Kast størstedelen til ilflue, han trak læsset ;)
Avatar billede ilflue Nybegynder
28. september 2006 - 19:19 #37
Hva? vi var da vist rimmelig lige gode om det :)
Avatar billede mclemens Nybegynder
28. september 2006 - 19:20 #38
Hvis spam i tråden tæller med så måske :D
Avatar billede ilflue Nybegynder
28. september 2006 - 19:27 #39
He he. *bot* du skal bare dele lige. udens hans skarpe øjne havde jeg aldrig set det lille mellemrum
Avatar billede mclemens Nybegynder
28. september 2006 - 20:14 #40
Tak for point :)
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