当div高度小于窗口时,如何将类添加到body?

时间:2014-09-04 13:00:32

标签: javascript jquery resize

如果某个div的高度小于用户窗口大小,我正在尝试向正文添加一个类。这是我当前的jQuery脚本。它不能很好地工作,我没有任何错误。不知道我做错了什么。

由于

jQuery(document).ready(function($) {
    var $window = $(window);
    var $pageHeight = $('.wrap').height();
    function checkWidth() {
        var windowsize = $window.height();
        if (windowsize < $pageHeight) {
            $('body').addClass('need-padding');
        }
    }
    checkWidth();   
    $(window).resize(checkWidth);
});

3 个答案:

答案 0 :(得分:1)

试试这个......不需要创建单独的函数:

 $(window).resize(function(){
     var $windowHeight = $(window).height();
     var $blockHeight = $('.wrap').height();
        if ($blockHeight < $windowHeight ) {
            //console.log($windowHeight+" Window Height");
            //console.log($blockHeight+" Block Height");
            $('body').addClass('need-padding');
        }
  });

答案 1 :(得分:0)

通常,代码看起来不错。但是,如果您的$('.wrap')有边距或边框,则可能需要使用.outerHeight()代替.height()

答案 2 :(得分:0)

这是一个显示正在发生的事情的小提琴:

http://jsfiddle.net/4fqb8t1q/

$(document).ready(function() {
    checkWidth();   
    $(window).resize(checkWidth);
});  
function checkWidth() {
    var $pageHeight = $('.wrap').height();
    alert($(window).height() + " < " + $pageHeight);
    if ($(window).height() < $pageHeight) {
        $('body').addClass('need-padding');
    }
}