Add/Remove Class of Nav Objects on Page Scroll

You forgot to add the # in the removeClass parts:

$(document).on('scroll', function() {
  if ($(this).scrollTop() >= $('#cards').position().top) {
    $("#navcard").addClass("active");;
  } else {
    $("#navcard").removeClass("active")
  }
  if ($(this).scrollTop() >= $('#projects').position().top) {
    $("#navprojects").addClass("active");;
  } else {
    $("#navprojects").removeClass("active")
  }
  if ($(this).scrollTop() >= $('#dave').position().top) {
    $("#navdave").addClass("active");;
  } else {
    $("#navdave").removeClass("active")
  }
})

Update

Try changing your code to this and let me know what the results of each console.log is:

$(document).on('scroll', function() {

  console.log($(this).scrollTop());
  console.log($('#cards').position().top);
  console.log($('#projects').position().top);
  console.log($('#dave').position().top);

  if ($(this).scrollTop() >= $('#cards').position().top) {
    $("#navcard").addClass("active");;
  } else {
    $("#navcard").removeClass("active")
  }
  if ($(this).scrollTop() >= $('#projects').position().top) {
    $("#navprojects").addClass("active");;
  } else {
    $("#navprojects").removeClass("active")
  }
  if ($(this).scrollTop() >= $('#dave').position().top) {
    $("#navdave").addClass("active");;
  } else {
    $("#navdave").removeClass("active")
  }
})

Leave a Comment