Разработчик задал вопрос на StackOverflow с заголовком «Отключить прокрутку на `‹input type=number›`». Он спросил:

Можно ли отключить колесо прокрутки, изменяющее число в поле ввода? Я возился со специфичным для webkit CSS, чтобы удалить счетчик, но я хотел бы полностью избавиться от этого поведения. Мне нравится использовать type=number, так как он вызывает удобную клавиатуру на iOS.

Было много ответов, посвященных простым решениям JavaScript, но в наши дни большинство разработчиков интерфейса используют JS-фреймворки, такие как React. Имея это в виду, я предоставил следующее ориентированное на ReactJS решение для предотвращения прокрутки, когда пользователь перемещает колесо мыши над числовым вводом:

const MyNumberInput = () => {
  const numberInputOnWheelPreventChange = (e) => {
    // Prevent the input value change
    e.target.blur()

    // Prevent the page/container scrolling
    e.stopPropagation()

    // Refocus immediately, on the next tick (after the current     
    function is done)
      setTimeout(() => {
        e.target.focus()
    }, 0)
}

  return <input type="number" onWheel={numberInputOnWheelPreventChange}/>
}

Комментарии подробно объясняют, как это работает, поэтому я не буду повторяться здесь. Я надеюсь, что это полезно. Если у вас есть вопросы или другие решения, не стесняйтесь комментировать ниже.