Как сделать отдельное окно
Обновлено: 24.04.2024
Яндекс Браузер умеет открывать видеофайлы с расширениями mp4 , swf , avi , webm , mpg , ogv , x-m4v , wmv , m4v .
Видеофайлы с расширениями mov , quicktime и flv не поддерживаются.
Просмотр видео в отдельном окне
Примечание. Видео появляется в отдельном окне, если вы запустили видео сами или оно играет со звуком. В режиме Инкогнито видео нельзя вынести в отдельное окно.
Вы можете просматривать видео в отдельном окне Браузера. Например, можно одновременно запустить программу и видеоинструкцию к ней. Окно с видеоплеером отображается поверх всех остальных окон, в какой бы программе вы ни работали. Окно можно перетащить в любое место экрана или изменить размеры окна. Если свернуть Браузер, видео продолжит проигрываться. Если видео в формате HTML5 содержит субтитры (например, на YouTube у таких видео есть значок на панели управления), они тоже появятся в новом окне.
По умолчанию видео открывается в отдельном окне, когда вы переключаетесь на другую вкладку или программу. Если этого не случилось, наведите указатель мыши на верхнюю часть видеоплеера и нажмите значок .
Для быстрого управления используйте горячие клавиши.
Поставить на паузу / снять с паузы | Space |
Перемотать на 5 секунд вперед | → |
Перемотать на 5 секунд назад | ← |
Поставить на паузу / снять с паузы | Space |
Перемотать на 5 секунд вперед | → |
Перемотать на 5 секунд назад | ← |
Вы также можете замедлить или ускорить видео. Для этого нажмите → Скорость и выберите из списка нужное значение.
Вы можете скрыть кнопку выноса видео или автоматическое воспроизведение видео в другом окне:
В блоке Просмотр видео поверх других вкладок и программ отключите опцию Показывать на видеороликах кнопку для выноса видео или Автоматически открывать видео в отдельном окне .
Если вы хотите запретить вынос видео в отдельное окно, отключите обе опции.
Перевод и озвучка видео
Смотрите видео на русском языке с помощью функции закадрового перевода.
Прекращение поддержки Flash
Технология Flash использовалась в браузерах для воспроизведения мультимедийных файлов и запуска игр. Ее поддержку и распространение Adobe прекратила с 2021 года.
Большинство сайтов уже используют другие форматы воспроизведения контента — например, HTML5 или WebGL. Эти находящиеся в открытом доступе технологии работают быстрее и стабильнее, тратят меньше энергии, и они значительно безопаснее Flash.
Если вы посещаете сайт, использующий Flash, обратитесь в службу поддержки этого ресурса.
Проблемы с видео
Если владелец сайта запретил открывать файл в браузере, файл загружается на компьютер пользователя. Чтобы открыть его в Браузере, перетащите в окно Браузера значок загруженного файла, появившийся справа от Умной строки , или нажмите клавиши Ctrl + O и выберите нужный файл в папке Загрузки.
Если в Браузере вместо видео отображается черный экран, дрожит изображение в онлайн-играх, видео долго загружается, постоянно тормозит или останавливается\nпри переходе в полноэкранный режим, попробуйте решить проблему одним из способов.
Попробуйте включить или отключить аппаратное ускорение:
Если в блоке Производительность включена опция Использовать аппаратное ускорение, если возможно — отключите ее. Если эта опция отключена, включите ее.
Проверьте, решена ли проблема.
Проверьте, решена ли проблема.
Если проблема осталась, напишите нам. В письме укажите, что драйверы обновлены.
Устаревший Браузер может не поддерживать технологии для быстрой загрузки видео. Установите последнюю версию Браузера .
Некоторые сервисы для защиты контента используют уникальные идентификаторы устройств. Чтобы они работали, в блоке Идентификаторы защищенного контента включите опцию (только для Windows) Разрешить сайтам использовать идентификаторы для воспроизведения защищенного контента .
Браузер больше не поддерживает модуль NPAPI, на основе которого сделан Unity Web Player. Эта технология устарела, компания Unity также перестала поддерживать этот модуль.
Если не воспроизводится видео в формате HTML5 или видео c защищенным контентом (например, на Кинопоиске) :
Если у вас актуальная версия Браузера, выполните в консоли команду sudo /путь до папки браузера/browser/update-ffmpeg . По умолчанию браузер устанавливается в opt/yandex/browser .
При переходе на некоторые сайты автоматически начинает проигрываться видео. К сожалению, в Браузере нет возможности запретить автозапуск видео на сайте.
Проверьте, распознаётся ли камера другими программами.
Если да, укажите ее вручную в настройках Браузера:
Если это не помогло, напишите в службу поддержки Браузера.
Проверьте версию Windows:
Выберите версию Windows:
Напишите нам через форму.
Закройте Браузер. Для этого нажмите → Дополнительно → Закрыть браузер либо клавиши Ctrl + Shift + Q .
Если это не помогло, напишите нам через форму.
Скачайте и установите Media Feature Pack для Windows 8 N/KN.
Скачайте и установите Media Feature Pack для Windows 8.1 N/KN.
Скачайте и установите Media Feature Pack для Windows 10 N/KN.
О решении проблем со звуком в видео см. раздел Проблемы со звуком.
Видео каких форматов можно проигрывать в Браузере?
Яндекс Браузер умеет открывать видеофайлы с расширениями mp4 , swf , avi , webm , mpg , ogv , x-m4v , wmv , m4v .
Видеофайлы с расширениями mov , quicktime и flv не поддерживаются.
Просмотр видео в отдельном окне
Примечание. Видео появляется в отдельном окне, если вы запустили видео сами или оно играет со звуком. В режиме Инкогнито видео нельзя вынести в отдельное окно.
Вы можете просматривать видео в отдельном окне Браузера. Например, можно одновременно запустить программу и видеоинструкцию к ней. Окно с видеоплеером отображается поверх всех остальных окон, в какой бы программе вы ни работали. Окно можно перетащить в любое место экрана или изменить размеры окна. Если свернуть Браузер, видео продолжит проигрываться. Если видео в формате HTML5 содержит субтитры (например, на YouTube у таких видео есть значок на панели управления), они тоже появятся в новом окне.
По умолчанию видео открывается в отдельном окне, когда вы переключаетесь на другую вкладку или программу. Если этого не случилось, наведите указатель мыши на верхнюю часть видеоплеера и нажмите значок .
Совет. Вы можете поменять расположение значка , перетащив его мышью в нужное место видеоплеера.
Режим «картинка в картинке» отвечает за запуск видео в отдельном окне браузера, при котором видео ролик воспроизводится в небольшом окне в углу экрана. Многим пользователям нравится просматривать видео, одновременно занимаясь другими делами на компьютере, например, смотреть обучающее видео и повторять показанные действия в какой-нибудь программе.
Просмотр видео в отдельном окне реализован во всех основных браузерах. Пользователь может открыть в отдельном окне не только Ютуб видео, но и другое видео, размещенное на сайтах в интернете, например, в социальных сетях: ВКонтакте, Одноклассники, Facebook или на других ресурсах.
Давайте разберемся, как открыть видео в отдельном окне, поверх всех других окон браузера или программ, запущенных на компьютере. Для того чтобы смотреть видео в отдельном окне необходимы два условия:
- Поддержка браузером функции видео «картинка в картинке».
- Сайт с размещенным видео поддерживает стандарт HTML5-видео.
Ранее данный режим поддерживался с помощью расширений, устанавливаемых в браузер. Сейчас функционал «картинка в картинке», когда видео вынесено в отдельное окно, имеется во всех популярных браузерах.
По умолчанию видео запускается в небольшом окне в правом углу экрана, поверх открытого окна браузера. Режим «картинка в картинке» для видео в браузере имеет свои особенности:
В этой статье вы найдете инструкции, как сделать видео в отдельном окне, используя встроенные возможности популярных браузеров.
Как сделать Ютуб поверх всех окон
Поддержка показа видео, размещенного на самом популярном видеохостинге YouTube, реализована во всех основных браузерах. В зависимости от настроек браузера, пользователь активирует функцию «картинка в картинке», при которой происходит воспроизведение видео в отдельном окне.
Видео с YouTube начинает проигрываться в отдельном окне.
Пользователь может свернуть окно браузера, заниматься своими делами, смотреть вполглаза видео в плавающем окне, которое можно переместить в любую область экрана.
О том, как этот режим запускается в разных браузерах, читайте дальше в этой статье.
Яндекс Браузер — видео в отдельном окне
Работу функции «картинка в картинке» в Яндекс.Браузер рассмотрим на примере просмотра Яндекс Видео в отдельном окне. Подобным образом эта функция работает на видеохостингах YouTube, Vimeo или на других поддерживаемых сайтах.
Для того, чтобы открыть видео в отдельном окне Яндекс Браузера выполните следующие действия:
- Войдите в Яндекс Видео, запустите просмотр видео.
- Наведите курсор мыши на видео, в верхней части появится кнопка «Видео в отдельном окне».
- Нажмите на «Видео в отдельном окне».
- В окне с видео можно выполнить разные действия: поставить просмотр на паузу, добавить видео в «Коллекции», перемотать видео, изменить скорость воспроизведения, открыть на весь экран, или продолжить просмотр на сайте.
Гугл Хром — видео в отдельном окне
Запуск видео в отдельном окне Хром реализован следующим образом:
- Необходимо два раза кликнуть по видео правой кнопкой мыши.
- В контекстном меню нужно выбрать «Картинка в картинке».
Из мини-плеера можно вернутся во вкладку браузера с оригинальным видео, перейти к предыдущему или следующему треку, поставить воспроизведение на паузу.
Видео «картинка в картинке» в Mozilla Firefox
В браузер Mozilla Firefox встроена функция для воспроизведения видео роликов в отдельном окне, поверх другого контента. Этот способ работает на популярных ресурсах, в том числе на Яндекс Видео.
В браузере Firefox функция вызывается двумя способами.
- Подведите курсор мыши на видео ролик. В правой части видео появится кнопка «Картинка в картинке», на которую нужно нажать для открытия видео в отдельном окошке.
- Щелкните два раза правой кнопкой мыши по видео.
- В контекстном меню нажмите на пункт «Картинка в картинке».
В браузере Firefox видео в отдельном окне можно поставить на паузу, закрыть или продолжить просмотр на сайте.
Запуск видео в отдельном окне Опера
Данная функция уже давно функционирует в браузере Opera. Пользователи могут на многих сайтах в интернете использовать просмотр видео в другом окне при помощи браузера Опера.
Нужно выполнить следующие шаги:
- После подвода курсора мыши к видео в верней части появится кнопка «Картинка в картинке», на которую нужно нажать для запуска воспроизведение видео в отдельном окне браузера.
Как вывести видео в отельное окно в Microsoft Edge (Chromium)
В браузере Microsoft Edge (Chromium) реализовано открытие видео в отдельном окно, подобно тому, как это сделано в браузере Google Chrome.
Кликните два раза правой кнопкой мыши во видео, в открывшемся контекстном меню выберите «Картинка в картинке».
Видео в отдельном окне можно поставить на паузу или вернуться во вкладку браузера с исходным видео.
Выводы статьи
В основных по популярности браузерах имеется функция для воспроизведения видео в отдельном плавающем окне, поверх окна браузера или других программ на компьютере. Функция «картинка в картинке» позволяет пользователю смотреть видео в мини плеере, параллельно занимаясь другими делами на ПК.
От переводчика: данная статья является девятой в цикле переводов официального руководства по библиотеке SFML. Прошлую статью можно найти тут. Данный цикл статей ставит своей целью предоставить людям, не знающим язык оригинала, возможность ознакомится с этой библиотекой. SFML — это простая и кроссплатформенная мультимедиа библиотека. SFML обеспечивает простой интерфейс для разработки игр и прочих мультимедийных приложений. Оригинальную статью можно найти тут. Посвящается Еве Вайт. С днем рождения;). Начнем.
1. Приступая к работе
- Рисование 2D объектов
- Спрайты и текстуры
- Текст и шрифты
- Формы
- Проектирование ваших собственных объектов с помощью массивов вершин
- Позиция, вращение, масштаб: преобразование объектов
- Добавление специальных эффектов с шейдерами
- Контроль 2D камеры и вида
- Проигрывание звуков и музыки
- Запись аудио
- Пользовательские потоки аудио
- Спатиализация: звуки в 3D
Вступление
Эта статья объясняет, как открыть и управлять окном. Рисование в окне выходит за пределы задач, решаемых модулем sfml-window ; эту задачу решает модуль sfml-graphics . Однако управление окном с использование модуля sfml-graphics выполняется также, так что чтение данной статьи важно в любом случае.
Открытие окна
В SFML окна представлены классом sf::Window. Окно может быть создано напрямую из конструктора данного класса:
Первый аргумент — видео режим, определяет размер создаваемого окна (размер области окна, без заголовка окна и границ). Тут мы создали окно размером 800x600 пикселей.
Класс sf::VideoMode имеет интересные статические функции, с помощью которых можно получить разрешение рабочего стола или доступные видео режимы. Советуем посмотреть документацию по этому классу.
Второй аргумент — имя создаваемого окна.
Конструктор класса sf::Window может принять и третий аргумент: стиль, который позволяет вам выбрать, какие украшения и функции вы хотите использовать.
Вы можете использовать любую комбинацию следующих стилей:
sf::Style::None | Никаких украшений (используется, например, для загрузочных экранов); этот стиль не может быть использован с другими |
sf::Style::Titlebar | У окна есть заголовок |
sf::Style::Resize | Можно изменить размер окна и появляется кнопка открытие на весь экран |
sf::Style::Close | У окна появляется кнопка закрытия |
sf::Style::Fullscreen | Окно открывается в полноэкранном режиме; этот стиль не может быть скомбинирован с другими и требует доступный видео режим |
sf::Style::Default | Стандартный стиль, который является сокращение Titlebar | Resize | Close |
Также есть четвертый аргумент, определяющий специфичные опции OpenGL. Эта тема рассматривается более подробно в статье по OpenGL.
Если вы хотите создать окно после создания экземпляра sf::Window или создать окно заново, с другим видео режимом или названием, вы можете использовать функцию create . Она принимает те же аргументы, что и конструктор класса.
Оживление окна
Если вы попробуете выполнить код выше (удалив ". "), вы вряд ли что-то увидите. Во-первых, потому что программа завершается немедленно. Во-вторых, потому что программа не обрабатывает события; так что, даже если вы добавили этот код в бесконечный цикл, вы увидите мертвое окно, которое не может быть перемещено или закрыто.
Давайте добавим немного кода, что бы сделать эту программу более интересной:
Код выше открывает окно и уничтожает его, когда пользователь закрывает его. Давайте посмотрим более детально, как он работает:
Во-первых, мы добавили цикл, который гарантирует, что приложение будет обновляться/дополняться до закрытия окна. Большинство (если не все) SFML программы будут иметь схожую конструкцию; иногда этот цикл называется main loop или game loop.
Затем, первое, что мы хотим сделать внутри нашего цикла — проверить наличие необработанных событий. Обратите внимание, что мы используем цикл while так, чтобы обработать все ожидающие обработки события. Функция pollEvent возвращает true , если есть события, ожидающие обработки, или false , если их нет.
Люди часто забывают о цикле обработки событий, потому что им не нужно обрабатывать события (вместо этого они используют ввод с клавиатуры). Без цикла обработки событий, окно перестанет отвечать на запросы. Важно помнить, что цикл обработки событий имеет две роли: в дополнение к обработке пользовательских событий, это еще и обработка внутренних событий окна, которые могут быть вызваны перемещением или изменением размера окна.
После того, как окно закрылось, основной цикл завершается и программа завершает свое выполнение.
В этот момент, вы, наверное, заметили, что мы не говорили о рисовании чего-то в окне. Как указывалось во введении, это не задача модуля sfml-window . Рисование объектов (спрайтов, текста или фигур) будет обсуждаться в статьях по sfml-graphics .
Чтобы что-то рисовать, вы также можете использовать OpenGL напрямую и игнорировать модуль sfml-graphics . sf::Window создает OpenGL контекст и готова к принятию вызовов к OpenGL. Вы можете более подробно ознакомиться с данной темой в статье по использованию OpenGL.
Не ожидайте увидеть что-то интересное в новом окне: мы можете увидеть какой-нибудь цвет (черный или белый), или содержимое прошлого приложения, использовавшего OpenGL, или… что-то еще.
Играемся с окном
Конечно, SFML позволяет вам играться с вашими окнами. Основные операции с окнами, например изменение размера, положения, названия или иконки поддерживаются, но, в отличие от специальных библиотек GUI (Qt, wxWidgets), SFML не предоставляет расширенный функционал. Окна SFML предназначены только для обеспечения среды для OpenGL или SFML.
Вы можете обратиться к документации по API для получения полного списка функций sf::Window.
В случае, если вам действительно нужны расширенный функционал для вашего окна, вы можете создать одно окно с помощью другой библиотекой и внедрить его в SFML. Чтобы это сделать, вы можете использовать другой конструктор или создать функцию, которая передает sf::Window дескриптор существующего окна. В этом случае, SFML будет создавать контекст рисования внутри переданного окна и отлавливать все события без вмешательства в родительский менеджер окна.
Если вам нужна дополнительная, очень специфичная функция, вы можете сделать иначе: создать окно SFML, получить его дескриптор и сделать то, чего не позволяет SFML.
Интеграция SFML с другими библиотеками требует работы и не будет описана здесь, но вы можете обратиться к другим статьям, примерам или постам на форумах.
Контроль кадровой частоты
Иногда, когда приложение работает быстро, вы можете заметить визуальные артефакты. Причина в том, что частота обновления вашего приложения не синхронизирована с кадровой разверткой вашего монитора, и, как результат, нижняя часть предыдущего кадра смешивается с верхом следующего.
Решением этой проблемы является активизация вертикальной синхронизации. Синхронизация производится автоматически видеокартой и может быть просто включена или выключена с помощью функции setVerticalSyncEnabled :
После этого вызова, приложение будет выполняться с определенной частой, равной частоте обновления монитора.
Иногда вызов setVerticalSyncEnabled не дает никакого эффекта: скорее всего, потому что вертикальная синхронизация выключена в настройках драйвера вашей видеокарты. Вы должны включить опцию «controlled by application» в настройках видеодрайвера.
Вы можете захотеть, чтобы ваше приложение работало на заданной кадровой частоте, вместо частоты обновления монитора. Это может быть достигнуто с помощью вызова setFramerateLimit :
В отличие от setVerticalSyncEnabled , эта функция реализована SFML и использует комбинация sf::Clock и sf::sleep . Важно отметить, что эта функция не является надежной на 100%, особенно для высокой кадровой частоты: возможности sf::sleep зависят от ОС и оборудования; минимальное время приостановки составляет 10-15 миллисекунд. Не полагайтесь на эту функцию, если вы создаете приложение, сильно зависящее от времени.
Никогда не используйте setVerticalSyncEnabled и setFramerateLimit вместе. Это может вызвать плохие последствия.
Вещи, которые нужно знать об окнах
Ниже приведен список того, что вы можете и чего не можете делать с окнами SFML.
Вы можете создавать множество окон
SFML позволяет создавать множество окон, а так же обрабатывать их события и управлять ими в главном потоке или в множестве потоков (но… смотрите ниже). В этом случае, не забудьте создать цикл обработки событий для каждого из них.
Пока что, множество мониторов не поддерживается
SFML неявным образом управляет несколькими мониторами. По этой причине, вы не можете выбрать, на каком мониторе появится окно, и вы не можете создать более одного полноэкранного окна. Это должно быть исправлено в будущих версиях.
События окна должны быть обработаны в потоке окна
Это является серьезным сдерживающим фактором для большинства операционных систем: цикл обработки событий (точнее, функция pollEvent или waitEvent ) должен вызываться в том же потоке, в котором было создано окно. Это означает, что если вы хотите создать выделенный поток для обработки событий, вы должны убедиться, что окно создается в том же потоке. Если вы действительно хотите разделить задачи между потоками, удобнее обрабатывать события в главном потоке, и производить операции с окнами (например, отрисовку графики) в отдельном потоке. Эта конфигурация также будет совместима с других ограничений, описанными ниже.
На Mac OS X обслуживание окон и обработка событий должны производиться в главном потоке
Ага, это правда. Mac OS X не позволит вам создать окно или обработать события в потоке, отличном от главного.
На Windows окно, размером больше рабочего стола, не обрабатывается корректно
По какой-то причине, Windows не позволяет созвать окна, размером больше, чем рабочий стол. Это затрагивает окна, созданные с помощью VideoMode::getDesktopMode() : если вы будете использовать оформление окон (границы и заголовок), вы получите окно, которое будет немного больше, чем рабочий стол.
Вёрстка таких окон сначала кажется простой задачей. Модальные окна можно сделать даже без помощи JS только лишь с помощью CSS, но на практике они оказываются неудобными, и из-за маленьких недочетов модальные окна раздражают посетителей сайта.
В итоге было задумано сделать собственное простое решение.
Вообще говоря, есть несколько готовых скриптов, JavaScript библиотек, реализующих функционал модальных окон, например:
- Arctic Modal,
- jquery-modal,
- iziModal,
- Micromodal.js,
- tingle.js,
- Bootstrap Modal (из библиотеки Bootstrap) и др.
(в статье не рассматриваем решения на базе Frontend-фреймворков)
Несколькими из них я пользовался сам, но почти у всех находил какие-то недостатки. Некоторые из них требуют подключения библиотеки jQuery, которая есть не на всех проектах. Для разработки своего решения, нужно сначала определиться с требованиями.
Что мы ждём от модальных окон? Отвечая на этот вопрос, я основывался на докладе «Знакомьтесь, модальное окно» Анны Селезнёвой, а так-же на относительно старой статье NikoX «arcticModal — jQuery-плагин для модальных окон».
Итак, чтобы нам хотелось видеть?
Дисклеймер: Прежде чем мы рассмотрим подробности, сразу дам ссылку на готовый код получившейся библиотеки (HystModal) на GitHub, а также ссылку на демо+документацию.
Начнём с разметки.
1. Разметка HTML и CSS
1.1. Каркас модальных окон
Как открыть окно быстро? Самое простое решение: разместить всю разметку модального окна сразу в HTML странице. Затем скрывать/показывать это окно при помощи переключения классов CSS.
Набросаем такую разметку HTML (я назвал этот скрипт «hystmodal»):
Сделаем так, чтобы .hystmodal растягивался на всё окно браузера и закрывал собой содержимое страницы. Чтобы этого добиться, установим фиксированное позиционирование в CSS и приравняем свойства top, bottom, left и right к нулю.
В этом коде сделаны ещё две вещи:
- Так как мы хотим центрировать окно внутри страницы, превращаем .hystmodal в flex-контейнер с выравниваем его потомков по центру по вертикали и горизонтали.
- Окно может быть больше высоты экрана браузера, поэтому мы устанавливаем overflow-y: auto , чтобы при переполнении возникала полоса прокрутки. Также, для сенсорных экранов (в основном для Safari) нам стоит установить свойство -webkit-overflow-scrolling: touch , чтобы сенсорная прокрутка работала именно на этом блоке а не на странице.
Теперь установим стили для самого окна.
Кажется возникли сложности.
Проблема №1. Если высота окна больше высоты окна браузера, то контент окна будет обрезан сверху.
Это возникает из-за свойства justify-content: center . Оно позволяет нам удобно выровнять потомков по основной оси (по вертикали), но если потомок становится больше родителя то часть его становится недоступной даже при прокручиваемом контейнере. Подробнее можно посмотреть на stackoverflow. Решение – установить justify-content: flex-start , а потомку установить margin:auto . Это выровняет его по центру.
Проблема №2. В ie-11 если высота окна больше высоты окна браузера, то фон окна обрезается.
Решение: мы можем установить flex-shrink:0 потомку – тогда обрезки не происходит.
Проблема №3. В браузерах кроме Chrome нет отступа от нижней границы окна (т.е. padding-bottom не сработал).
Сложно сказать баг это браузеров или наоборот соответствует спецификации, но решения два:
- установить псевдоэлемент ::after после потомка и дать ему высоту вместо padding
- обернуть элемент в дополнительный блок и дать отступы уже ему.
Воспользуемся вторым методом. Добавим обертку .hystmodal__wrap . Так мы заодно обойдём и проблему №1, а вместо padding у родителя установим margin-top и margin-top у самого .hystmodal__window .
Наш итоговый html:
В код также добавлены некоторые aria и role атрибуты для обеспечения доступности.
Обновленный код CSS для обертки и окна.
1.2 Скрываем окно
Сейчас наше окно всегда видно. Когда говорят о скрытии элементов, первое что приходит на ум это переключать свойство display со значения none до нашего значения flex.
Но этот подход нас не устроит, ведь свойство display не анимируется. Все переходы дочерних элементов, указанные в свойстве transition, работать не будут.
Нам поможет другое свойство visibility:hidden . Оно скроет окно визуально, хотя и зарезервирует под него место. А так как все будущие окна на странице имеют фиксированное
позиционирование – они будут полностью скрыты и не повлияют на остальную страницу. Кроме того, на элементы с visibility:hidden нельзя установить фокус с клавиатуры, а от скрин-ридеров мы уже скрыли окна с помощью атрибута aria-hidden="true" .
Добавим также классы для открытого окна:
1.3 Оформление подложки
В лучшем случае, нам нужен отдельный html-элемент в качестве оверлея. Можно использовать и имеющийся элемент модального окна .hystmodal в качестве оверлея, но тогда анимация на этом элементе (например переход opacity) будет затрагивать и внутренние элементы. В итоге, не получится анимировать разные свойства для окна и оверлея отдельно.
Просто разместим элемент .hystmodal__shadow прямо перед закрывающим