【发布时间】:2013-06-27 17:04:53
【问题描述】:
我在我的网站上使用了两个 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() }
}
);
});
});
【问题讨论】:
-
可能没关系,但
handler: function(event, direction)是旧的 1.x 处理程序签名,但您的小提琴使用的是 Waypoints 2.0.2,它只使用:handler: function(direction)。
标签: jquery scrollto jquery-waypoints