- Теория
- Теория
Сравниваем onchange и oninput
Мы научились изменять размер текста в статье, когда пользователь передвигает ползунок. Но пользоваться нашей настройкой неудобно, потому что текст изменяется слишком резко. Это происходит потому, что обработчик событий onchange срабатывает только тогда, когда пользователь отпускает ползунок. В итоге текст меняется один раз, скачком.
Чтобы текст изменялся более плавно, нужно менять размер шрифта много раз, но по чуть-чуть. Для этого надо получать новое значение при каждом изменении положения ползунка. С этим нам поможет обработчик событий oninput. Мы уже работали с ним в одной из прошлых частей.
Разберём, в чём разница между двумя обработчиками:
onchangeсрабатывает, если значение поля ввода изменилось и пользователь закончил ввод. Например, если пользователь передвинул ползунок и отпустил его. Или ввёл что-то в текстовое поле и убрал из него курсор.oninputсрабатывает на каждое изменение значения, независимо от того, завершил пользователь ввод или нет. Например, он сработает на каждое изменение положения ползунка, даже если пользователь продолжает его двигать. И на каждый новый символ в текстовом поле, даже если пользователь продолжает вводить текст.
Сделаем настройку размера текста удобнее. Для этого заменим обработчик onchange на oninput. После этого убедимся, что текст в статье изменяется без скачков.
Когда мы меняем размер элементов, браузеру приходится перерисовывать страницу. Это трудоёмкая операция, и лучше выполнять её как можно реже. Используйте обработчик oninput с осторожностью.
О том, как браузер обрабатывает различные изменения и анимации, вы можете узнать из этой статьи.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.