В этом посте вы узнаете все о полноэкранном API, и как использовать любой элемент в полноэкранном режиме и стилизовать полноэкранные элементы с помощью псевдоклассов CSS.
Полноэкранный API
HTML
Код
<div id="page-wrapper">
<h1>Полноэкранный API Демо</h1>
<section>
<h2>Полноэкранный документ</h2>
<button id="fs-doc-button">Перейти на полный экран</button>
<button id="fs-exit-doc-button">Выход из полноэкранного режима</button>
</section>
<hr>
<section>
<h2>Полноэкранные видео</h2>
<video id="video" width="640" height="365" controls>
<source src="http://demos.mattwest.io/page-visibility-demo/videos/mikethefrog.webm" type="video/webm">
<source src="http://demos.mattwest.io/page-visibility-demo/videos/mikethefrog.ogv" type="video/ogv">
<source src="http://demos.mattwest.io/page-visibility-demo/videos/mikethefrog.mp4" type="video/mp4">
<p>
Ваш браузер не поддерживает видео HTML5.
<a href="http://demos.mattwest.io/page-visibility-demo/videos/mikethefrog.mp4">Скачать</a> видео вместо.
</p>
</video>
<button id="fs-vid-button">Перейти на полный экран</button>
</section>
<hr>
<section>
<h2>Полноэкранные изображения</h2>
<img id="image" src="https://lh4.googleusercontent.com/-2dRSJbAmbqI/UTNLAOtCFII/AAAAAAAACqw/y3nrKoL06O8/w899-h674-no/100_0456.JPG" alt="Test Image">
<button id="fs-img-button">Перейти на полный экран</button>
</section>
</div>
CSS
Код
#page-wrapper {
width: 640px;
background: #FFFFFF;
padding: 1em;
margin: 1em auto;
border-top: 5px solid #69c773;
box-shadow: 0 2px 10px rgba(0,0,0,0.8);
}
h1 {
margin-top: 0;
}
h2 {
font-size: 0.9em;
text-transform: uppercase;
color: #333;
}
hr {
margin: 1.5em 0;
border: 0;
border-top: 1px solid #CCC;
}
button {
display: inline-block;
border-radius: 3px;
border: none;
font-size: 0.9rem;
padding: 0.4rem 0.8em;
background: #69c773;
border-bottom: 1px solid #498b50;
color: white;
-webkit-font-smoothing: antialiased;
font-weight: bold;
margin: 0.5em 0.25rem 0;
text-align: center;
}
button:hover, button:focus {
opacity: 0.75;
cursor: pointer;
}
button:active {
opacity: 1;
box-shadow: 0 -3px 10px rgba(0, 0, 0, 0.1) inset;
}
img {
max-width: 640px;
}
img:-webkit-full-screen {
max-width: none;
}
img:-moz-full-screen {
max-width: none;
}
img:-ms-fullscreen {
max-width: none;
}
img:full-screen {
max-width: none;
}
img:fullscreen {
max-width: none;
}
JS
Код
var requestFullscreen = function (ele) {
if (ele.requestFullscreen) {
ele.requestFullscreen();
} else if (ele.webkitRequestFullscreen) {
ele.webkitRequestFullscreen();
} else if (ele.mozRequestFullScreen) {
ele.mozRequestFullScreen();
} else if (ele.msRequestFullscreen) {
ele.msRequestFullscreen();
} else {
console.log('Fullscreen API is not supported.');
}
};
var exitFullscreen = function () {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else {
console.log('Fullscreen API is not supported.');
}
};
var fsDocButton = document.getElementById('fs-doc-button');
var fsExitDocButton = document.getElementById('fs-exit-doc-button');
fsDocButton.addEventListener('click', function(e) {
e.preventDefault();
requestFullscreen(document.documentElement);
});
fsExitDocButton.addEventListener('click', function(e) {
e.preventDefault();
exitFullscreen();
});
var fsVidButton = document.getElementById('fs-vid-button');
var video = document.getElementById('video');
fsVidButton.addEventListener('click', function(e) {
e.preventDefault();
requestFullscreen(video);
});
var fsImgButton = document.getElementById('fs-img-button');
var image = document.getElementById('image');
fsImgButton.addEventListener('click', function(e) {
e.preventDefault();
requestFullscreen(image);
});
Демонстрация