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