Предполагается, что вы имеете в виду относительно известного якоря / элемента;если вы используете jQuery, у них есть селектор для «Next Sibling»;найти документацию здесь:
http://api.jquery.com/next-siblings-selector/
Я просто ухожу;в противном случае я бы создал для вас полный селектор, но если у вас не будет ответа сегодня, я соберу его вместе.
Редактировать
На самом деле,Исходя из дальнейшего прочтения, я прошу вас искать следующий якорь относительно текущей позиции прокрутки на странице ... это немного больше работы ... но выполнимо ... (снова я постараюсь получитьпозднее сегодня, чтобы предоставить JS).
Редактировать
Они не завершены на 100%;но должно быть достаточно, чтобы вы получили общее представление.Если ваша страница имеет статический контент, я бы рекомендовал пройтись по странице и кэшировать все смещения в готовом документе;Определение смещения элементов может быть довольно медленным (особенно в старых браузерах).
var _anchorOffets = {};
$(document).ready(function () {
$("A[id]:not(A[href])").each(function (index, value) {
var $anchor = $(value);
_anchorOffets[$anchor.attr("id")] = $anchor.offset().top;
});
});
function getNextAnchorId() {
var $window = $(window);
var minOffset = $window.scrollTop() + $window.height();
for (var anchor in _anchorOffets) {
if (_anchorOffets[anchor] >= minOffset) {
return anchor;
}
}
return null;
}
в качестве альтернативы, если ваша страница имеет динамическое содержимое и местоположения якоря не зафиксированы в документе, то вы будете искать что-то ближе к
function getNextAnchorId() {
var result = null;
$("A[id]:not(A[href])").each(function (index, value) {
var $anchor = $(value);
var $window = $(window);
var minOffset = $window.scrollTop() + $window.height();
if($anchor.offset().top >= minOffset) {
result = $anchor.attr("id");
return false;
}
});
return result;
}
В зависимости от вашей страницыВозможно, вам придется расширить эту идею.Оба вышеуказанных решения предполагают довольно простую компоновку документа.Если у вас есть что-то необычное с относительным / абсолютным положением, прокручиваемыми div-символами и т. Д., Вам нужно усилить это (я могу предоставить код, если это так).На данный момент, хотя я предполагаю, что мы говорим об основных, найти якоря на странице, и выяснить, какой якорь будет следующим, основываясь на позиции прокрутки.Кроме того, я не проводил тщательного тестирования, поэтому может потребоваться некоторая полировка: D