У меня есть немного CSS, для которого нужно, чтобы тело было установлено по высоте, но это нужно делать в зависимости от пользователя.

Я сделал такой код, который работает: он вычисляет высоту окна, но не меняет рост. Что я делаю не так?

function setWindowHeight(){
    var windowHeight = window.innerHeight;
    document.getElementsByTagName('body').style.height = windowHeight + "px";
}
6
cloggy 24 Янв 2013 в 19:44

2 ответа

Лучший ответ

Вам нужно добавить eventListener, и вам не нужно использовать getElementsByTagName, потому что имеет только 1 тег body:

function setWindowHeight(){
    var windowHeight = window.innerHeight;
    document.body.style.height = windowHeight + "px";
    console.log(document.body.style.height);
}
window.addEventListener("resize",setWindowHeight,false);

Или, если вы хотите использовать, вы можете сделать это:

function setWindowHeight(){
    var windowHeight = window.innerHeight;
    document.getElementsByTagName('body')[0].style.height = windowHeight + "px";
    console.log(document.body.style.height);
//---------------------------------------´
//will get the first element tagged body
}
window.addEventListener("resize",setWindowHeight,false);

РЕДАКТИРОВАТЬ (изменил код выше): вы можете проверить значение в консоли Firefox. Откройте его (CTRL + SHIFT + K) и измените размер окна. Когда вы это сделаете, вы увидите событие resize .

5
Erick Ribeiro 24 Янв 2013 в 16:04
try this may work 

document.getElementsByTagName('body').height  = windowHeight + "px";
-1
A.T. 24 Янв 2013 в 15:53