jQuery обновление переменной функции переключения, при изменении размера окна - PullRequest
0 голосов
/ 02 апреля 2012

То, что я хочу, это анимированный div, который будет переключать высоту между 300px и 100% высоты окна минус 26 пикселей.Проблема, с которой я сталкиваюсь, заключается в том, что div не обновляет свой расширенный размер после изменения размера окна.Я всегда хочу, чтобы он расширялся до windowheight-26px, но сейчас он переключается только на первую высоту окна, но не обновляется.Код, который у меня есть сейчас:

$j(document).ready(function(){

var $nh = $j(window).height()-26;   

$j("#header-wrap").toggle(function(){
    toggleHeaderDown($nh);
},function(){
    toggleHeaderUp();
});

function toggleHeaderDown(y){
    $j("#header-wrap").animate({height:y},400,'easeInOutQuart');
    $j("#header-image").animate({height:'100%'},400,'easeInOutQuart');
    $j("#head1, #head2, #head3, #head4").animate({top: 0},400,'easeInOutQuart');
};
function toggleHeaderUp(){
    $j("#header-wrap, #header-image").animate({height:300},400,'easeInOutQuart');
    $j("#head1").animate({top: -50},400,'easeInOutQuart');
    $j("#head2").animate({top: -370},400,'easeInOutQuart');
    $j("#head3").animate({top: -200},400,'easeInOutQuart');
    $j("#head4").animate({top: -330},400,'easeInOutQuart')
};});



$j(window).resize(function() {

$nh = $j(window).height()-26;

});

1 Ответ

0 голосов
/ 02 апреля 2012

Я бы вычислил $ nh в toggleHeaderDown:

function toggleHeaderDown() {
       $nh = $j(window).height() - 26;
       // ...
}

Таким образом, вам не нужно ждать события изменения размера, чтобы получить правильное значение для высоты

...