JS-динамическое изменение переполнения вызывает повторную визуализацию в Firefox - PullRequest
0 голосов
/ 06 сентября 2011

Вот проблема:

Динамическое изменение свойства переполнения div с помощью JS приводит к тому, что содержимое этого div перерисовывается / перерисовывается - только в Firefox. В любом другом браузере свойство переполнения div изменяет размер, и содержимое НЕ перерисовывается.

Ладно, ничего страшного, это может просто вызвать мерцание содержимого при их перезагрузке, если у вас есть элемент Flash, содержащийся в этом div (как я), а затем программно изменить div. Свойство overflow означает, что фильм Flash вернется в исходное начальное состояние.

Я провел очень скромное тестирование по этому вопросу:

<div id="overflow_div" style="overflow:hidden;">
<flash object>
</div>
<a href="javascript:change_overflow();">Change Overflow</a>


<script language="javascript" type="text/javascript">
function change_overflow() {
overflow_div = document.getElementyById('overflow_div');
overflow_div.style.overflow = (overflow_div.style.overflow=="hidden")? visible : "hidden";
}
</script>

При щелчке по «переполнению изменения» объект Flash возвращается в исходное состояние в FF, но не в IE. Это может быть очень неприятно, когда вы пытаетесь создать динамический опыт с Flash и страницей, взаимодействующей друг с другом ...

Так что мой вопрос просто:

Есть ли какое-либо известное разрешение на это?

OR

Есть ли причина, по которой эта проблема все еще существует в FF?

1 Ответ

1 голос
/ 07 сентября 2011
  1. Невозможно предотвратить переопределение изменений переполнения в Gecko.
  2. Да; исправление требует довольно серьезного переписывания того, как плагины подключаются к DOM и дереву рендеринга в Gecko. Над этим работают; см https://bugzilla.mozilla.org/show_bug.cgi?id=90268.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...