问题
I have a site template that I am working on that can be seen here:
http://www.procardetail.co.uk/
As you can see I have Waypoints in action with a sticky header.
Everything works fine when I am scrolling down the page and the navigation links highlight as expected as they encounter the anchors on the page.
However when scrolling up, the functionality of highlighting the links does not work.
The javascript I am using looks like this:
$(function() {
// Do our DOM lookups beforehand
var nav_container = $("#navs");
var nav = $("nav");
var top_spacing = 15;
var waypoint_offset = 50;
nav_container.waypoint({
handler: function(event, direction) {
if (direction == 'down') {
nav_container.css({ 'height':nav.outerHeight() });
nav.stop().addClass("sticky").css("top",-nav.outerHeight()).animate({"top":top_spacing});
} else {
nav_container.css({ 'height':'auto' });
nav.stop().removeClass("sticky").css("top",nav.outerHeight()+waypoint_offset).animate({"top":""});
}
},
offset: function() {
return -nav.outerHeight()-waypoint_offset;
}
});
var sections = $("section");
var navigation_links = $("nav a");
sections.waypoint({
handler: function(event, direction) {
var active_section;
active_section = $(this);
if (direction === "up") active_section = active_section.prev();
var active_link = $('nav a[href="#' + active_section.attr("id") + '"]');
navigation_links.removeClass("selected");
active_link.addClass("selected");
},
offset: '25%'
})
navigation_links.click( function(event) {
$.scrollTo(
$(this).attr("href"),
{
duration: 100,
offset: { 'left':0, 'top':-0.15*$(window).height() }
}
);
});
});
Is anyone able to shed some light on why this is happening?
Thanks for your time and help in advance.
来源:https://stackoverflow.com/questions/9998175/waypoints-sticky-header-navigation-links-are-highlighted-upon-scrolling-down