基于jQuery window.width()的动态余量

时间:2014-06-02 14:19:27

标签: javascript jquery css

我的jQuery函数有点问题。当window.width为<时,我需要为某个元素添加一个边距。 580px,我需要在window.width更大时删除它。这是问题,功能的第一部分工作得很好,而不是第二部分。

var Wwidth= $(window).width();

if ( Wwidth < 582) {
    $( window ).resize(function() {  
    var nWwidth=$( document ).width();
    var marginL = (nWwidth - 292)/2;

    $('.hub-item').css('margin-left',marginL +'px');
    });
}
else {
     $( window ).resize(function() {  
    $('.hub-item').css('margin-left','0px');
    });

}

我在控制台中没有任何错误,但边距不是0。 谢谢大家!

编辑: 正确的代码:

$(window).resize(function() {
    var Wwidth= $(this).width();
    if (Wwidth < 582) {
        var nWwidth=$( window ).width();
        var marginL = (nWwidth - 292)/2;

        $('.hub-item').css('margin-left',marginL +'px');
    }
    else {
        $('.hub-item').css('margin-left','0px');
    }
});

全部谢谢!

1 个答案:

答案 0 :(得分:3)

您需要将if语句放在 $(window).resize()函数中,并且每次都重新计算Wwidth

$(window).resize(function() {
    var Wwidth = $(this).width();

    if (Wwidth < 582) {
        ...
    }
    else {
        ...
    }
});