Показать сообщение отдельно
  #1 (permalink)  
Старый 25.06.2012, 13:11
Аватар для antonM
Кандидат Javascript-наук
Отправить личное сообщение для antonM Посмотреть профиль Найти все сообщения от antonM
 
Регистрация: 11.08.2011
Сообщений: 103

Установка фокуса на элемент с сохранением скрола
Добрый день.
Вопрос по сабжу, в основном проблема касается IE.

Есть div с tabindex="0". Возле div-а расположены его копки управления. После нажатия на кнопку управления необходимо передать фокус назад на div. При передаче фокуса все браузеры (что вполне логично) смещают скрол к этому элементу. Мне необходимо, чтобы скрол не смещался.

Для решения вопроса использую следующий код:
var dtop = $(document).scrollTop(); //Считываю начальную позицию
$("#div1").focus(); //Передаю фокус элементу
$(document).scrollTop(dtop); //Восстанавливаю начальное положение скрола

Во всех браузерах все хорошо кроме IE. Собственно в IE проблема возникает, если высота div больше высоты видимой области документа или он не полностью находится в этой области. Возникает неприятное мерцание документа, при каждом выполнении третьей строчки документ передергивает.
Пробовал "грязный" хак с setTimeout, не помогает. Возможно кто-то знает как победить IE?
Заранее благодарен.
Ответить с цитированием