Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Highlight current page menu item as user scrolls
- var lastId,
- pageMenu = $("nav"),
- pageMenuHeight = pageMenu.outerHeight(),
- // All list items
- menuItems = pageMenu.find("a"),
- // Anchors corresponding to menu items
- scrollItems = menuItems.map(function(){
- var item = $($(this).attr("href"));
- if (item.length) { return item; }
- });
- // Bind to scroll
- $(window).scroll(function(){
- // Get container scroll position
- var fromTop = $(this).scrollTop()+pageMenuHeight;
- // Get id of current scroll item
- var cur = scrollItems.map(function(){
- if ($(this).offset().top < fromTop)
- return this;
- });
- // Get the id of the current element
- cur = cur[cur.length-1];
- var id = cur && cur.length ? cur[0].id : "";
- if (lastId !== id) {
- lastId = id;
- // Set/remove active class
- menuItems
- .parent().removeClass("active")
- .end().filter("[href=\\#"+id+"]").parent().addClass("active");
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement