Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.06.2010, 11:48
Новичок на форуме
Отправить личное сообщение для somename Посмотреть профиль Найти все сообщения от somename
 
Регистрация: 20.04.2010
Сообщений: 8

Задержка отображения изменений на странице в опере
Существует следующая проблема: в опере некоторые события выполняются не сразу, а только после каких-то изменений на экране. Точнее даже отрисовка происходит со временем. Для примера:
$($(obj).children()).attr("style", "width:"+innerX+"px");

Код должен изменять размеры слоя, но отображение производится не сразу, а только после каких-то других изменений на странице. К примеру, если сделать так:
$($(obj).children()).attr("style", "width:"+innerX+"px");
alert(1);

то все изменится как надо.
Такой баг был замечен только в опере.
Никто не знает как это исправить и почему такое происходит?
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2010, 12:14
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Пробуйте так:

$(obj).children().css('width', innerX + 'px');


Это всё баги рендера у оперы.
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2010, 12:17
Новичок на форуме
Отправить личное сообщение для somename Посмотреть профиль Найти все сообщения от somename
 
Регистрация: 20.04.2010
Сообщений: 8

Тот же самый результат. Я даже ввел дополнительный код для отображения полосы загрузки
if(!is) $("#loader").fadeIn(300).fadeOut(300);

После чего в опере 9,64 стало работать все хорошо, но в 10,53 срабатывает только первый раз, а затем перестают рендериться изменения
Ответить с цитированием
  #4 (permalink)  
Старый 17.06.2010, 12:30
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Как я понял по первому сообщению, изменения становятся видны только после того, как на странице что-то изменилось (выскочил akert(), например). Так можно поставить для оперы такой код:

$('body').css('opacity', .99);


Фактически изменения будут, но никто и не заметит разницы opacity в 0.01.
Ответить с цитированием
  #5 (permalink)  
Старый 17.06.2010, 12:46
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Уж лучше css-класс добавить.
Ответить с цитированием
  #6 (permalink)  
Старый 17.06.2010, 23:13
Новичок на форуме
Отправить личное сообщение для somename Посмотреть профиль Найти все сообщения от somename
 
Регистрация: 20.04.2010
Сообщений: 8

Спасибо за помощь. Проблема решена. Изменение прозрачности реально помогло.
Ответить с цитированием
Ответ



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

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