При нажатии на кнопку SPACE скролит к якорям(JS, jQuery)

78
31 мая 2021, 13:00

Есть такой код :

>    $(window).keypress(function(e) {
>             if (e.keyCode == 0 || e.keyCode == 32) 
>             $('html, body').animate({scrollTop:  $('.anchor').offset().top}, 350);
>     });

Здесь скролит при нажатии на space только до 1-го якоря(.anchor) и зависает, а мне нужно что-бы и до следующих елементов скролило при нажатии на space. Что нужно дописать? Буду очень благодарен за максимально быстрый ответ!

Answer 1

Пробуйте так:

var i = 0;
$(window).on("keypress", function(e) {
  if (e.keyCode == 0 || e.keyCode == 32) {
    var $a = $('.anchor');
    $('html, body').animate({scrollTop: $a.eq( i ).offset().top}, 350);
    i = ( i === $a.length - 1 ) ? ( 0 ) : ( i + 1 );
    // Если дойдет до последнего - вернется до первого... иначе - увеличится на 1.
  }
});
READ ALSO
Не работает алгоритм?

Не работает алгоритм?

делаю алгоритм сортировки на джаваскриптРаботает на другом алгоритме - поиска наименьшего числа

99
Методы жизненного цикла React

Методы жизненного цикла React

Какие на данный момент можно использовать методы жизненного цикла в React? В интернете только устаревшая информация а в офдокументации расписано...

83
Как определить на каком мониторе находится окно, и как открыть его на другом?

Как определить на каком мониторе находится окно, и как открыть его на другом?

Открываю окно через windowopen(url, name, params), при закрытии запоминаю размеры и положение, при повторном открытии размещаю окно по сохраненным координатам...

194