【发布时间】:2014-07-17 14:26:46
【问题描述】:
有人提出了类似的问题,但我在这些主题中找不到任何帮助。
看看this fiddle。右侧有一个菜单,可让您滚动到其他部分。
应该发生的是,例如,当您单击“3”时,菜单中的“3”将获得“可见”类(以较大的字体显示)。然而,出于某种原因,第一个列表项总是得到这个类。我认为这是因为在下面的 if 语句中,第一个 div 的偏移量为零,因此被评估为 true,这是不正确的。
$("body > div").each(function () {
var $this = $(this),
nextSection = $this.next("div"),
offsetT = $this.offset().top;
if (offsetT == 0) {
$("nav a").removeClass("visible");
$("a#" + $this.attr("id") + "-button").addClass("visible");
console.log("a#" + $this.attr("id") + "-button");
}
});
另一种解释可能是出现问题,因为该函数是作为回调调用的。我是故意这样做的,因为当它作为回调调用时,应该没有动画,并且应该将一个容器捕捉到窗口顶部:因此只能有一个元素具有offset == 0。但正如你所见,这行不通。
类必须在 SnapIt 函数中设置,因为该函数在其他地方也可以使用。
【问题讨论】:
-
这是你想要的吗? jsfiddle.net/dtQwr/4
-
@j809,一点也不。