Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Задержка отображения изменений на странице в опере (https://javascript.ru/forum/css-html-browser/10053-zaderzhka-otobrazheniya-izmenenijj-na-stranice-v-opere.html)

somename 17.06.2010 11:48

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

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

то все изменится как надо.
Такой баг был замечен только в опере.
Никто не знает как это исправить и почему такое происходит?

exec 17.06.2010 12:14

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

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


Это всё баги рендера у оперы.

somename 17.06.2010 12:17

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

После чего в опере 9,64 стало работать все хорошо, но в 10,53 срабатывает только первый раз, а затем перестают рендериться изменения

exec 17.06.2010 12:30

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

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


Фактически изменения будут, но никто и не заметит разницы opacity в 0.01.

Kolyaj 17.06.2010 12:46

Уж лучше css-класс добавить.

somename 17.06.2010 23:13

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


Часовой пояс GMT +3, время: 16:15.