Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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?
Заранее благодарен.
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2012, 13:24
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от antonM
Есть div с tabindex="0". Возле div-а расположены его копки управления. После нажатия на кнопку управления необходимо передать фокус назад на div. При передаче фокуса все браузеры (что вполне логично) смещают скрол к этому элементу. Мне необходимо, чтобы скрол не смещался.
Запоминайте скролл при наведении на кнопу, после (клика)&&(и получении фокуса) - возвращайте позицию
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2012, 13:43
Аватар для antonM
Кандидат Javascript-наук
Отправить личное сообщение для antonM Посмотреть профиль Найти все сообщения от antonM
 
Регистрация: 11.08.2011
Сообщений: 103

Deff, все равно дергает.

А может быть можно сделать как то (только для IE), что-то типа: event.preventDefault. Но только для скрола?

Последний раз редактировалось antonM, 25.06.2012 в 13:51.
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2012, 15:25
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от antonM
А может быть можно сделать как то (только для IE),
Нун искать отмену скроллирования при смене фокуса
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что при получении фокуса элемент div был полностью виден на эране kraw Events/DOM/Window 2 06.02.2012 23:42
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10
Установка фокуса в конец формы Zhazhah jQuery 2 25.05.2011 18:20
Установка фокуса ввода на JavaScript VIt Общие вопросы Javascript 3 18.08.2008 15:48