Firefox: при перемещении табуляции вверх / вниз (и прокрутке) window.scrollY регистрируется дважды с интервалом в один пиксель

#firefox #scroll #tabbing

#firefox #прокрутка #табуляция

Вопрос:

При перемещении табуляции вверх / вниз (и это активирует прокрутку) прокрутка происходит мгновенно (не плавно) и не выполняется чисто на одном значении.

Если вы поместите это в консоль любого сайта, вы можете сравнить различные варианты прокрутки:

 document.addEventListener("scroll", () => {
    console.log("Scrolled");
    console.log(window.scrollY);
})
 

Прокрутка вверх / вниз с помощью мыши (работает нормально)

  • Прокрутите вверх, последний отпечаток window.scrollY будет меньше предыдущего, потому что он ближе к верхней части окна просмотра
  • Прокрутите вниз, последний отпечаток window.scrollY будет больше предыдущего, потому что он дальше от верхней части окна просмотра

Прокрутка вверх / вниз с помощью клавиш со стрелками (работает нормально, так же, как указано выше)

При перемещении табуляции и активации прокрутки здесь он работает неправильно

  • При прокрутке вниз последний отпечаток window.scrollY будет на 1 пиксель меньше предыдущего (* Но НЕ всегда. Иногда это нормально.)
  • При прокрутке вверх последний отпечаток window.scrollY будет на 1 пиксель больше предыдущего

Например, Tab DOWN -> Активирует прокрутку (негладкую)

 PRINTS IN CONSOLE:
      3964.2666015625 
      Scrolled 
      4709.2666015625
      Scrolled 
      4708.2666015625           (It "lands" here)
 

Я протестировал то же самое в Edge и Chrome, и они печатают window.scrollY правильно, и скрипты там работают хорошо.