Autor Zpráva
valecekm
Profil
Dobry den. Chtel bych poprosit skusenejsi jestli by nevedeli co se deje.
Muj problem je takovej: potrebuji zjistit vysku jednoho div s id a vysku plochy v ktere je tag body abych nasledne mohl porvest matematickej vypocet a vycentrovat obsah webu odshora dolu. Vim ze existuje reseni pres CSS, ale to momentalne neresi muj problem. mam tam promenne at uz to s var nebo bez nej to je jedno Tag_body a Id_body, kterym zjistuju vysku. ovsem nejde stim pocitat matematicky z cehoz vypliva ze se to asi nezjisti nebo to nevrati cislo nebo opravdu nevim. Kdyz promene Tag_body nebo Id_body napisu ze se rovna jen proste cislu, tak to spocita, ale takto ne jak je to uvedeno v priklade. Skousel sem tam davat i eval a jiny veci, ktery urci ze je to cislo ten zjistenej vysledek, ale porad zadnej vysledek.

Ukazka scriptu:

Nefunguje:
Tag_body = document.getElementByTagName("body").scrollHeight
Id_body = document.getElementById("body").offsetHeight
function ZmenTopPos()
{
document.getElementById("body").style.top=Math.round((Tag_body-Id_body)/2)+"px";
}

Kdyz zadam nejake cisla misto zjistovani funguje:
Tag_body = 1000
Id_body = 744
function ZmenTopPos()
{
document.getElementById("body").style.top=Math.round((Tag_body-Id_body)/2)+"px";
}
Pokud by jste nekdo vedel kde delam chbybu nebo jestli vysku zjistuji spatne, tka mi prosim napiste. Dekuju
Nox
Profil
Použij funkci parseInt
Chamurappi
Profil
Reaguji na valecekm:
Vlastnost „scrollHeight“ na elementu vrací číslo vždy.
Vlastnost „scrollHeight“ na kolekci elementů neexistuje, takže vrací undefined.

Metoda document.getElementById("body") vrací element s atributem id="body".
Metoda document.getElementsByTagName("body") vrací kolekci elementů jménem „body“.
Metoda document.getElementByTagName("body") neexistuje a její volání způsobí chybu.

Element <body> můžeš pohodlně najít v document.body.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: