所有文档都讨论了航点何时到达视口顶部,但我希望当航点的任何部分位于视口中心时触发。
如果我向下滚动,此代码工作得相当好,但是当我向上滚动时,它显然不起作用。
$('.section').waypoint(function(direction) {
highlight('#' + this.id);
}, {
context: '#scroll',
offset: function (direction) {
return $(this).height();
}
});
我尝试了下面的代码和几个变体,它甚至从未命中任何一个 return 语句。
$('.section').waypoint(function(direction) {
highlight('#' + this.id);
}, {
context: '#scroll',
offset: function (direction) {
if (direction == 'down') {
return -$(this).height();
} else {
return 0;
}
}
});
所以现在我正在尝试这个,基于航路点示例,但是 $active.id 不像 this.id 那样工作,所以我的函数“highlight”失败了。
$('.section').waypoint(function (direction) {
var $active = $(this);
if (direction == 'down') {
$active = $active.prev();
}
if (!$active.length) {
$active = $(this);
}
highlight($active.id);
}, {
context: '#scroll',
offset: function (direction) {
return $(this).height();
}
});