Вот ситуация для тех, кто разбирается в деталях рендеринга в браузере.Это очень специфично, поэтому я надеюсь, что кто-то захочет помочь мне.
Я столкнулся со странной ситуацией, когда в Webkit отображается таинственный фрейм, после того как я сделал несколько сложныхмакет рутиныТак как в Chrome этого не происходит, это может быть ошибкой Webkit, но, возможно, кто-то здесь увидит, что я делаю что-то не так.
В общих чертах, это схемаприложения:
- Есть два «слоя» (
base
& overlay
) - При нажатии на страницу происходит переход между ними.
- Когда я немного прокручиваюсь в Safari, перед самым переходом, базовый слой прыгает вверх и обратно:
Однако, если бы я нарисовал временную шкалу моего кода и где эта ошибка возникает, это выглядит так:
|-- L1 -- R -- L2 -- ❌ -- ✅ -- ...|
Где:
L1
: код компоновки R
: принудительная перекомпоновка L2
: код компоновки - ❌: неверный кадр
- ✅: правильный кадр
Другими словами, неверный кадр отображается и исправляется браузером без вмешательства моего кода.Однако неправильный кадр - это результат некоторого кода, который я выполняю в L1
(если я удалю часть кода макета, ошибка исчезнет).
I 'мы создали скрипку с кодом: https://jsfiddle.net/joostlubach/5eruf12k/. Однако по иронии судьбы ошибка там не появляется, вероятно, потому что jsfiddle оборачивает все в контейнер.
Я также добавил ZIPфайл с исходным кодом и снимок экрана Safari и Chrome, иллюстрирующий проблему.