получить следующий html якорь / селектор относительно области просмотра / прокрутки? - PullRequest
0 голосов
/ 16 января 2020

У меня есть многосекционная страница 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 Ответ

0 голосов
/ 16 января 2020

Ваш 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];
    }
  } 
}
...