Как сделать так, чтобы ссылка переходила на следующий якорь на странице, не зная имени якоря?

У меня есть кнопка в верхней части страницы, и я хочу закодировать ее, чтобы перейти к следующей привязке, независимо от того, что это такое. На самом деле я хочу сделать следующие / предыдущие кнопки, чтобы перейти к следующему и предыдущему якорям. Эта кнопка находится на статической рамке, поэтому она должна идеально прокручивать остальную часть страницы.

Любые предложения будут великолепны. Опять же, я не буду знать, что такое якорь, это больше похоже на навигацию по главам с использованием универсальной кнопки.

Похоже, найти следующий объект привязки в DOM и пойти туда должно быть выполнимо вещь, но я не одарён jquery или javascript, чтобы сделать это.

2 ответа

var index = -1;

$('.next').click(function() {
   index++;
   $(window).scrollTop($('a').eq(index).position().top);

});
$('.previous').click(function() {
   index--;
   if(index < 0) { index = 0;}

   $(window).scrollTop($('a').eq(index).position().top);
});

Хорошим решением было бы установить "текущий" якорь, используя класс (возможно, жестко закодировать первый якорь на странице с class= "current"), а затем использовать jquery, чтобы пройти через dom и выбрать следующий или предыдущий якорь. Предполагая, что у вас есть кнопки "следующий" и "предыдущий", вы можете сделать что-то вроде:

<script type="text/javascript">

  $('.next').click(function(e){
    e.preventDefault();
    var current_anchor = $('a.current');
    var next_anchor = current.next('a');
    $('body').animate({scrollTop:next_anchor.offset().top});
  })

  $('.previous').click(function(e){
    e.preventDefault();
    var current_anchor = $('a.current');
    var previous_anchor = current.prev('a');
    $('body').animate({scrollTop:previous_anchor.offset().top});
  })

</script>
Другие вопросы по тегам