2011-01-28 3 views
3

дана DIV на странице, как <div id="rightRail>xxx</div>JQuery -given в DIV, расширить высоту DIV, чтобы достичь нижней

Можно ли как некоторые магически сделать высоту, DIV в размере на Broswer загрузке/размере так, чтобы высота достигает нижней части окна? Было бы проще, если бы div находился в верхней части страницы, но это не так. спасибо

+0

http://stackoverflow.com/questions/1443465/jquery-dynamic-div-height может помочь –

ответ

16

Вам нужно верхнее значение .offset()help и innerHeight из текущего окна, чтобы установить его .height()help. Это будет выглядеть так:

$('#div').height(function(index, height) { 
    return window.innerHeight - $(this).offset().top; 
}); 

Demo: http://jsfiddle.net/d3ays/

+0

Если страница выше окна браузера, это будет в конечном итоге установки высоты нижнего колонтитула 0. Это также не учитывает любые дополнения, которые могут быть применены к div. Вот код, который сравнивает высоты, а также настраивает для заполнения. '$ ('# div'). height (function (index, height) { \t var current_height = $ (this) .height(); \t var new_height = window.innerHeight - $ (this) .offset(). top - parseInt ($ (this) .css ('padding-top')) - parseInt ($ (this) .css ('padding-bottom')) \t if (new_height> current_height) return new_height; }) ; ' – todd

+0

Я добавил свой код в качестве альтернативного ответа. – todd

0

Вы можете попробовать следующий код, в котором эта функция используется для получения высоты окна:

function GetHeight() 
{ 
    var y = 0; 
    if (self.innerHeight) 
    { 
      y = self.innerHeight; 
    } 
    else if (document.documentElement && document.documentElement.clientHeight) 
    { 
      y = document.documentElement.clientHeight; 
    } 
    else if (document.body) 
    { 
      y = document.body.clientHeight; 
    } 
    return y; 
} 

И затем использовать JQuery, чтобы дать height вашему DIV динамически, как это:

document.ready(function(){ 
    var heightOfDiv = GetHeight(); 
    jQuery('#rightRail').css("top",heightOfDiv +"px"); 
}); 

После того, как вы можете манипулировать переменной heightOfDiv путем добавления или вычитания пикселей в соответствии с вашими потребностями.

Возможно, это сработает для вас.

1

Если страница находится выше, чем в окне браузера решение JANDY будет в конечном итоге установки высоты Div в 0. Он также не принимает во внимание любое дополнение, которое может быть применено к div. Вот код, который сравнивает высоты, а также настраивает для заполнения.

$('#div').height(function(index, height) { 
    var current_height = $(this).height(); 
    var new_height = window.innerHeight - $(this).offset().top - parseInt($(this).css('padding-top')) - parseInt($(this).css('padding-bottom')); 
    if (new_height > current_height) return new_height; 
}); 
Смежные вопросы