Подтвердить что ты не робот

Chrome не перерисовывает <div> после того, как он скрыт

У меня есть div, которые отображаются на панели управления, а затем скрыты. Тем не менее, в Chrome (19.0.1084.56 м, Windows XP), когда вы открываете окно, Chrome не перерисовывает их как ушедшие, пока вы не сделаете что-то вроде прокрутки или изменения размера окна.

http://jsfiddle.net/y7NdR/3/

Я знаю, что некоторые изменения в моем CSS будут устранять проблему, например. удалив свойства position или z-index и overflow, но я действительно не хочу этого делать - JSfiddle спарен с полного сайта, где они мне нужны.

Может ли кто-нибудь пролить свет на то, почему эта проблема с перерисованием происходит в Chrome? У кого-нибудь есть какие-либо советы по его устранению, не вникая в CSS, который мне нужен?

4b9b3361

Ответ 1

Очевидно, что это ошибка WebKit.

Я обнаружил, что добавление -webkit-transform: scale3d(1,1,1); исправляет его:

http://jsfiddle.net/thirtydot/y7NdR/5/

Я не уверен, есть ли недостатки в этом исправлении. Я думаю, это работает, потому что внутри WebKit используется другой код для визуализации трехмерных преобразований.

Ответ 2

Я очень долго боролся с этим, и, добавляя -webkit-transform: scale3d(1,1,1);, исправил мою проблему, я хотел узнать ПОЧЕМУ. Итак, я углубился в свой код, чтобы попытаться сузить мою проблему. Я обнаружил, что в анимации я использовал fade, и внутри этого я включил в один класс:

-webkit-backface-visibility:hidden;
backface-visibility:hidden;

Удалите только эти две строки, исправив мою проблему без взлома масштабирования.

Увидев, что обратная видимость связана с преобразованиями и не должна влиять на 2D-преобразования, я удалил ее и полностью исправил свои проблемы.

Было отмечено множество ошибок с обращением к фону с хром, поэтому я разместил это для любых будущих людей, которые пытаются найти исправление без лишних усилий.