为什么我从变量而不是数字中获取NaN?

时间:2017-08-31 15:22:24

标签: javascript jquery

为什么我提醒cont_home_hcont_other_h我得到NaN?但是,如果我提醒变量wind_hslider_hhead_img_h,我就会得到它们的高度。我做错了吗?如果你需要CSS,我将创建一个演示,但我希望你能看到这个jQuery中的错误。感谢。

/*no scroll on content when nav is open*/   
        var wind_h = jQuery(window).height();  
        var slider_h  = jQuery(".slider").height();
        var head_img_h = jQuery(".head").height();

        var cont_home_h = wind_h - slider_h;
        var cont_other_h = wind_h - head_img_h;

        var cont_wrapper = jQuery(".page_cont_wrapper");
        var slider = jQuery(".slider");
        var head_img = jQuery(".head");

        if(slider.length && jQuery("#hd_ft_cont").hasClass("open_nav")){
            cont_wrapper.css("height", cont_home_h);
            cont_wrapper.addClass("no_scroll");
        }else{
            cont_wrapper.css("height", "auto");
            cont_wrapper.removeClass("no_scroll");
        }

        if(head_img.length && jQuery("#hd_ft_cont").hasClass("open_nav")){
            cont_wrapper.css("height", cont_other_h);
            cont_wrapper.addClass("no_scroll");
        }else{
            cont_wrapper.css("height", "auto");
            cont_wrapper.removeClass("no_scroll");
        }

        jQuery(window).resize(function(){
            var wind_h = jQuery(window).height();  
            var slider_h  = jQuery(".slider").height();
            var head_img_h = jQuery(".head").height();

            var cont_home_h = wind_h - slider_h;
            var cont_other_h = wind_h - head_img;

            var cont_wrapper = jQuery(".page_cont_wrapper");
            var slider = jQuery(".slider");
            var head_img = jQuery(".head");

            if(slider.length && jQuery("#hd_ft_cont").hasClass("open_nav")){
                cont_wrapper.css("height", cont_home_h);
                cont_wrapper.addClass("no_scroll");
            }else{
                cont_wrapper.css("height", "auto");
                cont_wrapper.removeClass("no_scroll");
            }

            if(head_img.length && jQuery("#hd_ft_cont").hasClass("open_nav")){
                cont_wrapper.css("height", cont_other_h);
                cont_wrapper.addClass("no_scroll");
            }else{
                cont_wrapper.css("height", "auto");
                cont_wrapper.removeClass("no_scroll");
            }
        });

2 个答案:

答案 0 :(得分:5)

没有运行代码,但我很确定NaN是因为你的调整大小函数第6行的拼写错误而来的

var cont_other_h = wind_h - head_img; 

该变量在其他任何地方都被称为head_img_h

答案 1 :(得分:0)

事实证明,主要问题是if语句相互覆盖。这就是我为解决它而做的事情

/*no scroll on content when nav is open*/   
        var wind_h = jQuery(window).height();  
        var slider_h  = jQuery(".slider").height();
        var head_img_h = jQuery(".head").height();

        var cont_home_h = wind_h - slider_h;
        var cont_other_h = wind_h - head_img_h;

        var cont_wrapper = jQuery(".page_cont_wrapper");
        var slider = jQuery(".slider");
        var head_img = jQuery(".head");

        if(slider.length && jQuery("#hd_ft_cont").hasClass("open_nav")){
            cont_wrapper.css("height", cont_home_h);
            cont_wrapper.addClass("no_scroll");
        }else if(slider.length){
            cont_wrapper.css("height", "auto");
            cont_wrapper.removeClass("no_scroll");
        }

        if(head_img.length && jQuery("#hd_ft_cont").hasClass("open_nav")){
            cont_wrapper.css("height", cont_other_h);
            cont_wrapper.addClass("no_scroll");
        }else if(head_img.length){
            cont_wrapper.css("height", "auto");
            cont_wrapper.removeClass("no_scroll");
        }