- This topic is empty.
Viewing 2 posts - 1 through 2 (of 2 total)
Viewing 2 posts - 1 through 2 (of 2 total)
- The forum ‘JavaScript’ is closed to new topics and replies.
The forums ran from 2008-2020 and are now closed and viewable here as an archive.
Home › Forums › JavaScript › Add class "active" to menu item when on section of page
Hello, I’m trying to add the class active to menu items on the page when the browser window is over a certain section of that page.
The site is here:
The JS that isn’t working yet is below. Thank you!
”’
(function AddActiveClassToMenu($){
var $menu = $('.nav-primary');
var $menuLi = $menu.find('li');
$menu.find('a').click(function(e){
var $this = $(this);
$menuLi.removeClass('active');
$this.parent().addClass('active');
// Fix first link and make it scroll to top
if ($this.parent().index() === 0) {
e.preventDefault();
$("html, body").animate({ scrollTop: 0 }, "slow");
}
});
var selectorStrings = ['#front-page-1','#front-page-2','#front-page-3','#front-page-4','#front-page-5','#front-page-6'];
function activeWhenInView(iterator) {
$(selectorStrings[iterator]).waypoint(function(){
$menuLi
.removeClass('active')
.eq(iterator).addClass('active');
}
);
}
for (var i = 0; i < selectorStrings.length; i++) {
activeWhenInView(i);
}
})(jQuery);
”’