Adam Robertson
Adam Robertson

Reputation: 567

jQuery Waypoints and Changing Nav Class

I'm using Waypoints.js and have a question about changing the style of a nav item when a certain waypoint is reached. I'm using this code to add a class of black to the menu item menu-item-29 when the waypoint post-26 is reached. It works, however when you scroll away off the waypoint, the black class isn't removed (it stays). How can I remove the black class when the waypoint is scrolled away? Thanks.

$(document).ready(function() {
$(".post-26").waypoint(function () {
$('#menu-item-29').addClass('black');
});
});

Upvotes: 3

Views: 8308

Answers (1)

imakewebthings
imakewebthings

Reputation: 3398

The waypoint function is passed a direction parameter. Use that to determine whether you should add or remove.

$('.post-26').waypoint(function(direction) {
  if (direction === 'down') {
    $('#menu-item-29').addClass('black');
  }
  else {
    $('#menu-item-29').removeClass('black');
  }
});

Or, since jQuery's toggleClass takes a second boolean parameter indicating whether to add or remove, you can just write it like this:

$('.post-26').waypoint(function(direction) {
  $('#menu-item-29').toggleClass('black', direction === 'down');
});

Upvotes: 4

Related Questions