Фон / элемент становится черным при входе в полноэкранный режим с HTML5
Я использую следующий скрипт, чтобы сделать мое веб-приложение полноэкранным...
function enterFullscreen(){
var element = document.getElementById('container');
if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.webkitRequestFullScreen) {
element.webkitRequestFullScreen();
}
l('Fullscreen Mode entered','internal');
}
И вот, когда я нажимаю кнопку триггера через $('button.toggle-fullscreen').click(function(){ enterFullscreen(); });
На самом деле я вхожу в полноэкранный режим, только мой элемент становится черным. Просто черный, больше ничего.
Кто-нибудь знает, как это исправить?
К вашему сведению, я использую Chrome 27.
5 ответов
Цвет фона по умолчанию полноэкранного "визуального окружения" браузера - черный. Ваш контент на самом деле есть, но в настоящее время это черный текст на черном фоне, поэтому вы не можете его увидеть (попробуйте выделить или нажать Ctrl+A
чтобы убедиться в этом).
Если вы хотите сделать фон другим цветом, вы должны указать правило CSS, чтобы установить background-color
свойство, отличное от значения по умолчанию. Итак, в вашем случае:
#container:fullscreen {
background-color: rgba(255,255,255,0);
}
#container:-webkit-full-screen {
background-color: rgba(255,255,255,0);
}
#container:-moz-full-screen {
background-color: rgba(255,255,255,0);
}
должен сделать свое дело. (Убедитесь, что вы используете соответствующую версию (и) поставщика - :-webkit-full-screen
а также :-moz-full-screen
- пока спецификация не завершится; см. MDN для получения дополнительной информации.)
На самом деле, может быть, просто
*:fullscreen, *:-webkit-full-screen, *:-moz-full-screen {
background-color: rgba(255,255,255,0);
}
EDIT @DevilishDB: использовал rgba для прозрачной BG и добавил селектор *, чтобы предыдущая вещь работала
Ни один из других ответов не работает для меня (Chrome 70 или FF 63)
Добавление этого в файл CSS работает
::backdrop
{
background-color: white;
}
Я не знаю точного ответа на ваш вопрос, но эта информация может помочь:
У меня была похожая проблема черного фона с enterFullscreen(document.body);
, Цвет фона стал нормальным после того, как я изменил строку на enterFullscreen(document.documentElement);
, CSS я использовал body{background-color: #D7D7D7; margin: 0px;}
,
Не знаю почему, но кажется, что фон элемента body не отображается в полноэкранном режиме или становится прозрачным...
Я исправил это, установив цвет фона для элемента html, и он работает просто отлично:
html {
background-color: #ffffff;
/* Or any color / image you want */
}
Я потратил часы, чтобы найти решение этой проблемы.
Я закончил этим:
- Установка белого цвета на фон
- И используя z-index, чтобы опустить его
Потом:
- Исправление белого цвета содержимого html-страницы
- И используя z-index, чтобы подтолкнуть его вверх (над фоном)
У меня работает в Firefox и Chrome
::backdrop {
z-index:0;
background-color: white !important;
}
html, *:fullscreen, *:-webkit-full-screen, *:-moz-full-screen {
background-color: white !important;
z-index:1;
}
Основное решение мне не помогло:-(я нашел другое решение, но да, в css:
:-webkit-full-screen, :fullscreen, :-ms-fullscreen, :-moz-full-screen {
position: fixed;
width: 100%;
height: 100%;
top: 0;
background: none;}
Я понимаю, что это для позиции моих элементов, но я не уверен. Надеюсь помочь кому-нибудь. Пока и спасибо.
Принятый ответ работает в большинстве браузеров, но в моих тестах не в IE11. Для меня это работает в текущих Chrome, Firefox, Edge, IE 11 и Safari на iOS:
CSS:
body {
background-color: #ffffff;
}
JS:
function openFullscreen () {
let isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
let elem = isSafari ? document.documentElement : document.body;
let openFn = elem.requestFullscreen || elem.mozRequestFullScreen || elem.webkitRequestFullscreen || elem.msRequestFullscreen;
if (openFn) {
openFn.call(elem);
}
};
edit: добавлено исключение для iOS/Safari, которое не работает с использованием body
элемент.