Проблема: фокусированный элемент теряет фокус при использовании полосы прокрутки IE.
Вам необходимо:
- определить элемент, который теряет фокус
- определить, когда документ был прокручен
- повторно применить фокус
Вы можете идентифицировать элемент, который теряет фокус, через событие blur
. Добавьте подходящий обработчик событий для каждого элемента, в котором вы хотите запомнить фокус.
Когда запускается обработчик события blur
, для данного элемента ввода вы должны хранить, возможно, в глобальной переменной идентификатор для элемента ввода. Как вы это сделаете, зависит от того, как вы решите идентифицировать элемент. id
элемента будет идеальным.
Вы можете определить, когда документ прокручивается через обработчик событий scroll
объекта window
. Смотри https://developer.mozilla.org/en/DOM/window.onscroll.
Вы можете определить, когда документ завершил прокрутку, сравнив значения scrollHeight до и после. См https://developer.mozilla.org/en/DOM/element.scrollHeight.
Общий:
- добавить
blur
обработчики событий к элементам ввода
- на размытие, обратите внимание на элемент, который теряет фокус, и текущий scrollHeight
- во время прокрутки, сравните scrollHeights, чтобы определить, остановилась ли прокрутка
- когда прокрутка остановлена, снова примените фокус
Возможно, вы захотите подождать небольшой промежуток времени между остановкой прокрутки и повторным наложением фокуса. Пользователь может немного прокручивать, останавливаться, прокручивать, останавливаться. Вы не хотите, чтобы ваш скрипт вызывал сумасшедшее поведение фокусировки.