À medida que caminhamos para aplicações web mais verdadeiras, nossas APIs JavaScript têm feito o melhor possível para acompanhar. Uma nova API JavaScript bastante simples, mas muito útil, é a Fullscreen. A API Fullscreen oferece uma maneira bem pragmática de requisitar a exibição em tela cheia para o usuário, e de sair desse modo de visualização quando desejado. Aqui está como utilizar essa API incrivelmente simples! Veja a demo.
Iniciando o modo Fullscreen
O método requestFullscreen da API Fullscreen ainda é pré-fixado em alguns browsers, então você precisa de fazer alguma pesquisa para encontrar isto:
// Find the right method, call on correct element
function launchFullscreen(element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
}
// Launch fullscreen for browsers that support it!
launchFullScreen(document.documentElement); // the whole page
launchFullScreen(document.getElementById("videoElement")); // any individual element
Você pode apenas requisitar o método no elemento que quer haja visualização em tela cheia (full screen) e a janela se transforme dessa maneira, requisitando que o usuário permita a visualização em full screen. Lembre que é possível que o usuário rejeite o modo de tela cheia. Se for aceito, as barras de ferramentas sumirão, fazendo com que o documento ocupe a largura e a altura totais da tela.
Saindo do modo Fullscreen
O método exitFullscreen (também pré-fixado em alguns navegadores mais antigos) vai restaurar a janela para o layout padrão:
// Whack fullscreen
function exitFullscreen() {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
// Cancel fullscreen for browsers that support it!
exitFullscreen();
Observe que o existFullscreen é chamado apenas no objeto do documento – não há necessidade de passar para o elemento individual.
Propriedades e eventos de Fullscreen
Infelizmente os eventos e as propriedades ainda são pré-fixados, mas isso vai mudar com o tempo. O evento fullscreenchange nos permite saber quando estamos entrando/saindo do modo de tela cheia: você pode detectar qual evento pré-fixado do browser deve usar com o método inicial de detecção de fullscreen.
var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement; var fullscreenEnabled = document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled;
Fullscreen CSS
Os browsers oferecem um controle CSS de fullscreen pequeno, mas bem útil:
:-webkit-full-screen {
/* properties */
}
:-moz-full-screen {
/* properties */
}
:-ms-fullscreen {
/* properties */
}
:full-screen { /*pre-spec */
/* properties */
}
:fullscreen { /* spec */
/* properties */
}
/* deeper elements */
:-webkit-full-screen video {
width: 100%;
height: 100%;
}
/* styling the backdrop*/
::backdrop {
/* properties */
}
::-ms-backdrop {
/* properties */
}
Em alguns casos, o Webit precisa de uma ajudinha, então o código acima deve ser bastante útil se você estiver lidando com mídia. Veja a demo. A API Fullscreen é super simples e super útil. A primeira vez que a vi em uso foi em uma demo do MDN do BananaBread, um jogo de tiro em primeira pessoa todo feito no client, uma desculpa perfeita para usar a tela cheia. A API oferece uma forma para entrar e sair do modo de fullscreen, assim como um evento para detectar a mudança de estado da tela cheia, então está tudo coberto. Tenha essa API bacana em mente para novas empreitadas – pode ser útil!
***
Artigo traduzido pela Redação iMasters, com autorização do autor. Publicado originalmente em http://davidwalsh.name/fullscreen



