- Полноэкранный режим браузера Fullscreen javascript API
- Включить полноэкранный режим с помощью API Fullscreen javascript
- Выйти из полноэкранного режима отображения страницы сайта.
- Свойства объектов Fullscreen
- Событие API Fullscreen об изменениии режима
- Кроссбраузерное решение API Fullscreen javascript для переключения режимов полноэкранного отображения контента
- Стилизация CSS для fullscreen API
- Как задействовать API Fullscreen javascript через IFRAME?
- Ещё один переключатель полноэкранного режима браузера
- Player parameters overview
- Supported Player Parameters
- Using multiple embed parameters
- Applying embed parameters to Vimeo.com URL
- How to make a video fullscreen when it is placed inside an iframe?
- 5 Answers 5
Полноэкранный режим браузера Fullscreen javascript API
При разработке WEB приложений для комфортного просмотра конента на смартфонах и планшетах часто требуется перевести браузер в режим полноэкранного отображения страницы напрямую средствами сайта и так же вернуть к режим по умолчанию. Для этого был разаботан инструмент входящий в спецификацию HTML 5 — Fullscreen javascript API.
Спецификация Fullscreen javascript API включает:
- 2 метода: requestFullScreen и cancelFullScreen
- 2 свойства объекта document: fullscreenElement и fullscreenEnabled
- 1 событие: fullscreenchange
В идеале за включение полноэкранного просмотра страницы должно отвечать одна строчка кода, но разработчики браузеров до сих пор не могут согласовать спецификацию и кросбраузерное решение возможно только с преминением префиксов.
Включить полноэкранный режим с помощью API Fullscreen javascript
document.documentElement.requestFullScreen(); // отобразить страницу в полноэкранном режиме document.getElementById("video1").requestFullScreen(); // отобразить элемент в полноэкранном режиме
Выйти из полноэкранного режима отображения страницы сайта.
Свойства объектов Fullscreen
fullscreenElement = document.fullscreenElement; // элемент который в данный момент находится в полноэкранним режиме fullscreenEnabled = document.fullscreenEnabled; // статус (true или false)
Событие API Fullscreen об изменениии режима
element.addEventListener("fullscreenchange", function(e)< console.log('статус fullscreen = ', document.fullscreenEnabled); >);
Кроссбраузерное решение API Fullscreen javascript для переключения режимов полноэкранного отображения контента
//Запустить отображение в полноэкранном режиме function launchFullScreen(element) < if(element.requestFullScreen) < element.requestFullScreen(); >else if(element.mozRequestFullScreen) < element.mozRequestFullScreen(); >else if(element.webkitRequestFullScreen) < element.webkitRequestFullScreen(); >> // Выход из полноэкранного режима function cancelFullscreen() < if(document.cancelFullScreen) < document.cancelFullScreen(); >else if(document.mozCancelFullScreen) < document.mozCancelFullScreen(); >else if(document.webkitCancelFullScreen) < document.webkitCancelFullScreen(); >> var onfullscreenchange = function(e) < var fullscreenElement = document.fullscreenElement || document.mozFullscreenElement || document.webkitFullscreenElement; var fullscreenEnabled = document.fullscreenEnabled || document.mozFullscreenEnabled || document.webkitFullscreenEnabled; console.log( 'fullscreenEnabled = ' + fullscreenEnabled, ', fullscreenElement = ', fullscreenElement, ', e = ', e); >// Событие об изменениии режима el.addEventListener("webkitfullscreenchange", onfullscreenchange); el.addEventListener("mozfullscreenchange", onfullscreenchange); el.addEventListener("fullscreenchange", onfullscreenchange);
Стилизация CSS для fullscreen API
Псевдокласс :full-screen предназначен для стилизации элементов в полноэкранном режиме.
Ниже приведен пример с префиксами -webkit- и -moz- , которые через некоторое время можно будет опустить и использовать просто :full-screen.
/* красный фон для полноэкранного режима */ :-webkit-full-screen < background: red; >:-moz-full-screen < background: red; >/* полноэкранное отображение */ :-webkit-full-screen video < width: 100%; height: 100%; >:-moz-full-screen video
Как задействовать API Fullscreen javascript через IFRAME?
Часто необходимо вывести контент в полноэкранном режиме транслируемый через IFRAME, например полноэкранное видео. Для этого необходимо добавить аттрибут allowfullscreen к элементу iframe. Не забываем о префиксах.
Ещё один переключатель полноэкранного режима браузера
function toggleFullScreen() < var doc = window.document; var docEl = doc.documentElement; var requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen; var cancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen; if(!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement) < requestFullScreen.call(docEl); >else < cancelFullScreen.call(doc); >>
Для упрощения разработки можно использовать хороший общий API от Синдре Сорхуса (Sindre Sorhus) — модуль Screenfull.js , который объединяет два немного разных JS API и вендорные префиксы в один последовательный API.
Player parameters overview
In addition to adjusting your video’s embed settings on site, you can add functionality to the Vimeo player by adding various URL parameters to the end of the player URL in your embed code.
URL parameters begin with a question mark (?) , For example:
URL parameters only apply to the specific embed code where the parameter is added.
In this article:
Supported Player Parameters
Please see table below for a summary of supported player parameters.
The Vimeo player is designed to play only one Vimeo video at a time.
Therefore, you will need to add this parameter to each video if you want to have more than one Vimeo video playing on the same page.
— Autopause functionality is not supported in Internet Explorer.
— In order for autopause to function, y ou must have cookies enabled in your browser.
Automatically start playback of the video.
⚠️ Warning: Autoplay may be blocked in some environments, such as IOS, Chrome 66+, and Safari 11+. In these cases, we’ll revert to standard playback requiring viewers to initiate playback.
Adding this parameter will have the following effect:
- All player toggles and elements will be turned off (including the play/pause button)
- The video will automatically loop
- The video will be set to autoplay
- The video will be muted
If you prefer that your video does not loop or autoplay, check out the controls=0 parameter below.
Note that setting this parameter will not disable keyboard controls.
Video must be hosted by a Starter, Standard, Advanced, Plus, Pro, Business, Premium, or Enterprise account.
Value specified
in the video’s embed settings
on site
Show the author of the video (byline).
(but only if the video owner allows)
Specify the color of the video controls. Colors may be overridden by the embed settings of the video.
Video must be hosted by a Starter, Standard, Advanced, Plus, Pro, Business, Premium, or Enterprise account.
This parameter will hide all elements in the player (play bar, sharing buttons, etc) for a chromeless experience.
When using this parameter, the play/pause button will be hidden. To start playback for your viewers, you’ll need to either enable autoplay, use keyboard controls, or implement our player SDK to start and control playback.
Note that setting this parameter will not disable keyboard controls.
Video must be hosted by a Starter, Standard, Advanced, Plus, Pro, Business, Premium, or Enterprise account.
Setting this parameter to «true» will block the player from tracking any session data, including all cookies and analytics.
(Will have the same effect as enabling a Do Not Track setting in your browser)
Allows for keyboard input to trigger player events. If false, the player will ignore keyboard input. Tabbing will still be supported in either mode.
Play the video again when it reaches the end, infinitely.
Note: Loop can also be chosen as a video’s end screen within the embed settings page. Learn more here .
Set video to mute on load. Viewers can still adjust the volume preferences in the player.
Can be used to unmute background videos, or work around autoplay limitations in certain browsers, such as Chrome and Safari.
Show the picture-in-picture button in the control bar and enable the picture-in-picture API.
playsinline
Play video inline on mobile devices instead of automatically going into fullscreen mode. Inline playback is enabled for all videos by default.
Value specified
in the video’s
embed settings
on site
Show the author’s profile image (portrait)
(but only if video owner allows)
240p, 360p, 540p, 720p, 1080p, 2k, 4k
By default, the Vimeo player is set to «Auto» mode, which means it chooses the highest video quality possible, depending on the viewer’s bandwidth and other factors in the playback environment.
The quality parameter allows you to specify the default playback quality for your embedded video. If you select a quality that doesn’t exist for your particular video, the quality parameter will be ignored, and the embed will default to Auto.
— This parameter is not supported on mobile devices or tablets.
— Please use caution when implementing this parameter. Defaulting to a higher quality (like 4K) may result in excessive buffering and choppy playback for your viewers.
— This parameter is only supported for uploaded videos and archived events which are embedded. It is not supported for live events.
Video must be hosted by a Starter, Standard, Advanced, Plus, Pro, Business, Premium, or Enterprise account.
Show speed controls in the preference menu of the player and enable playback rate API. (learn more about our player API at Vimeo Developer: API )
Video must be hosted by a Starter, Standard, Advanced, Plus, Pro, Business, Premium, or Enterprise account.
Time represented in minutes and/or seconds (for example, #t=1m2s)
Used to automatically begin playback at a specific point in time. Learn more at ‘Start playback at a specific timecode’ .
Note: This parameter does not require a prefixed question mark as all others do.
a lowercase language code and optionally the locale and type of text track.
(Examples: «en», «en-US», «en.captions», «en.subtitles»)
Displays a given cc/subtitle track by default in the player (pending the cc/subtitle track is available).
If you enter a language preference that hasn’t yet been uploaded for your particular video, the text track parameter will be ignored, and your embedded video may load with CC or subtitles disabled by default.
All videos with captions or subtitles available
(note: captions and subtitles must be uploaded by the video owner. Learn more at Captions and subtitles)
Value specified
in the video’s
embed settings
on site
(but only if the video owner allows)
transparent
By default, the background of the player iframe is transparent on Vimeo.
When disabled, the iframe background will become black. Black bars will be applied to the player when the height and width dimensions for the embedded player do not match the original aspect ratio of a video— e.g the iframe dimensions are set to 4:3 square, but the original video is 16:9 wide.
Using multiple embed parameters
If you are adding multiple parameters to the same embed code, you’ll need to separate them with ampersands (&). For example:
Applying embed parameters to Vimeo.com URL
If you are using an application that requires you to insert a Vimeo.com URL (e.g https://vimeo.com/ 76979871 ) instead of our embed code, you will be unable to use player parameters to customize the embedded player.
For example, this method is not supported :
Some examples of applications that only support Vimeo URLs are social media posts, WordPress themes and plugins, Wix plugins, Squarespace plugins, and other miscellaneous video embed tools within webpage builders. The good news is, some tools may allow you to adjust player preferences (like autoplay, for instance) directly in their own UI.
How to make a video fullscreen when it is placed inside an iframe?
I’m using the default settings for my mediaelement.js player, and my initialization is very basic: $(‘video’).mediaelementplayer(); My question is: Is it possible to fullscreen the player when the video is embedded in an iframe? When I press fullscreen, the video maximizes to the iframe but not to the entire screen however. Is this a limitation of html or is there a way to get around it? The general structure looks like this:
Thanks! EDIT: It seems this is player specific. The default html5
5 Answers 5
Stumbled upon this over at video.js:
And the answer is to add these attributes to iframe: (no IE support though)
As people have mentioned iframe has to have allowfullscreen property active. Meaning if you have iframe within iframe (depth is more than 1), you would need to use this parameter on every iframe, to allow bottom one access to fullscreen API.
And it seems like standard is moving away from allowfullscreen property, new standard is allow=»fullscreen» according to: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
If you have any issue with this implementation check if iframe src you are injecting is of the same origin. If not, you might need to add src of the iframe you are trying to open on allowlist, which can be done with allow=»fullscreen » . In case you don’t want to track each and every source, you can use «*» instead. allow=»fullscreen *» , which will work as any src.