Сегодня я узнал о Fullscreen API.

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

В полноэкранном режиме все внимание уделяется отображаемому в данный момент элементу, то есть вызывающему элементу requestFullscreen() и его потомкам. Ничего больше. Этот последний бит является ключевым, по крайней мере, для меня.

Мое намерение состояло в том, чтобы отобразить модальное окно после нажатия кнопки боковой панели. Простой. И это было. Он работал, как и ожидалось, только не в полноэкранном режиме. Нажатие кнопки боковой панели в полноэкранном режиме ничего не отображало, никаких модальных окон. Выйти из полноэкранного режима — БУМ — модально! Что дает?!?

Немного покопавшись, я понял, что модальное окно, о котором идет речь, было реализацией реагировать-модальное, которое по умолчанию добавляется к телу документа. Тело документа является предком полноэкранного элемента, а не потомком. Z-индекс 99999 не мог это исправить (поверьте, я пытался!).

Решение: сделать модальное окно потомком полноэкранного элемента.