получить следующий HTML-якорь / селектор, относительно области просмотра / прокрутки?

У меня есть многосекционная страница HTML.

Есть позиция: фиксированная -> при нажатии она должна перейти (прокрутить) к следующей / ближайшей.

однако следующий раздел относится к области просмотра, а не к кнопке (DOM).

Существует ли простой / встроенный способ определения «сегментов» HTML, чтобы он «знал», где находится следующий сегмент, и пользователь может

мой набор инструментов: jquery, javascript, html / css, wordpress.

РЕДАКТИРОВАТЬ

С момента начала этого вопроса я на самом деле написал решение jquery :

enumerates sections => position (as Y)
on event:
    get current offset;
    compare offset against each pair of consequent Y's
        if match:
            jumps to (next-near) selector.
            break;

но это подвержено ошибкам и неполное.

Вероятно, есть лучшее, нативное решение для «следующего окна просмотра» или «подкачки страниц», не так ли?

Всего 1 ответ


Ваш prev расчет неверен, так как вы не обработали условие, где ваш i равен 0. Это должно выглядеть примерно так:

function next() {
  console.log(ys);
  var here = $(document).scrollTop(), prev;
  console.log('here:', here);
  for(i=0;i<ys.length -1;i++){ 
    if (i == 0 ) {
      prev = 0;
    } else {
      prev = ys[i -1];
    }   console.log('here:',here,'prev:',prev,'curr:',ys[i],'next:',ys[i+1]);
    if (here>=prev && here<=ys[i]) {
      console.log('found', i, ys[i]);
      return ys[i];
    }
  } 
}

Есть идеи?

10000