すべてのドキュメントでは、ウェイポイントがビューポートの上部に到達したときに説明していますが、ウェイポイントのいずれかの部分がビューポートの中央にあるときにトリガーが発生するようにしたいと思います。
このコードは、下にスクロールしている場合はかなりうまく機能しますが、上にスクロールすると、明らかに機能しません。
$('.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();
}
});