我在我的网站上使用了两个 jQuery 插件来完成两件事:
jQuery Waypoints - 所以当我向下滚动页面并到达每个部分时,相应菜单链接下方的黑条变为白色:
- jQuery ScrollTo - 当您单击主菜单链接之一时,我正在使用它来平滑部分之间的滚动。
我的问题是,当我手动向下滚动页面时,适当的选定类会通过 Waypoints 添加到主菜单链接(如上图所示将栏变为白色)。但是当我单击主菜单上的实际链接时,它不起作用,直到我手动向下滚动一点。我相信这两个脚本都有一些偏移选项可以使其正常工作,但我无法弄清楚。我设置了一个 jsFiddle ( http://jsfiddle.net/j5Guz/ )。这是我当前的 jquery:
$(function() {
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: '35%'
});
navigation_links.click( function(event) {
$.scrollTo(
$(this).attr("href"),
{
duration: 500,
offset: { 'left':0, 'top':-0.15*$(window).height() }
}
);
});
});