在可变高度div上滚动后添加类

时间:2016-09-11 15:11:14

标签: javascript jquery

有人能在我的JS语法中发现错误吗?

function setSize() {
  var headerHeight = $('#header-blue:visible').height();
  var subHeight = $('.subhead:visible').height();
  var totalHeight = headerHeight + subHeight;
  console.log(totalHeight);
}

// Set height variables on load
$(document).ready(function () {
  setSize();
});
// Set height variables on window resize
$(window).resize(totalHeight);

// Fixed header on scroll
$(function() {
    var header = $(".subhead");
    $(window).scroll(function() {
        var scroll = $(window).scrollTop();

        if (scroll >= totalHeight) {
            header.addClass(" fixed");
        } else {
            header.removeClass("fixed");
        }
    });
});

此处的目标是在达到滚动位置时设置类。滚动位置是可变的,因为它取决于2 div的高度,它在移动和桌面上发生变化。

不幸的是,我收到语法错误,说未定义totalHeight。

1 个答案:

答案 0 :(得分:0)

变量totalHeight仅在函数setSize()的范围内,因此不能在函数外部使用。要解决这个问题,你必须使变量成为全局变量,例如在函数前声明它:

var totalHeight;
function setSize()

您还可以执行以下操作:

var totalHeight = function(){
   //code of the function here and make it return the value
}