F11键,而在OS X中可以按Shift + Command + F

除了提供几个新元素外, HTML5还引入了一组新API,其中包括我们将在本文中讨论的一个API ,称为Fullscreen API 。 使用此API,我们可以使用浏览器的本机功能将我们的网站或网页上的特定元素全屏显示(反之亦然)。

就实现而言,该API 特别适用于视频,图像,在线游戏以及基于HTML / CSS的幻灯片演示

因此,让我们看看它是如何工作的。

浏览器支持

在撰写本文时,此API仅适用于Google Chrome,Safari和Firefox。 与CSS3相似,该语法带有前缀,因为它仍处于实验阶段。

网页套件

火狐浏览器

描述

webkitRequestFullScreen

mozRequestFullScreen

全屏发送网页或指定元素的方法。

webkitCancelFullscreen

mozCancelFullscreen

退出全屏模式的方法。

mozFullScreenElement

webkitFullScreenElement

元素是否处于全屏模式的方法。

值得注意的是,全屏API将来可能会发生变化。

使用范例

学习新事物的最好方法之一就是以身作则。 在本文中,我们将运行一个简单的项目。 想法是我们将有一个图像和一个按钮,该按钮将使图像全屏显示或通过单击将其更改回普通视图。

让我们从HTML标记开始。 我们有一个<div>元素来包装图像,并为按钮提供一个<span>元素。

<div id="fullscreen" class="html5-fullscreen-api">
	<img src="img/arokanddedes.jpg">
	<span class="fs-button"></span>
</div>

然后,将图像放置在窗口的中心,并添加一些装饰样式以使其看起来更好。

.demo-wrapper {
	width: 38%;
	margin: 0 auto;
}
.html5-fullscreen-api {
	position: relative;
}
.html5-fullscreen-api img {
	max-width: 100%;
	border: 10px solid #fff;
	box-shadow: 0px 0px 50px #ccc;
}
.html5-fullscreen-api .fs-button {
	z-index: 100;
	display: inline-block;
	width: 32px;
	height: 32px;
	position: absolute;
	top: 10px;
	right: 10px;
	cursor: pointer;
}


<div> <img src="https://s2.51cto.com/images/blog/202311/23224327_655f650fc3f3870199.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=" alt="图像样式"> </div>


html5的video无法点击全屏播放 html5 全屏_css


我决定使用:after伪元素<span>元素中显示图标,以便稍后我们可以使用content属性通过CSS轻松更改图标。

.html5-fullscreen-api .fs-button:after {
	display: inline-block;
	width: 100%;
	height: 100%;
	font-size: 32px;
	font-family: 'ModernPictogramsNormal';
	color: rgba(255,255,255,.5);
	cursor: pointer;
	content: "v";
}
.html5-fullscreen-api .fs-button:hover:after {
	color: rgb(255,255,255);
}


<div> <img src="https://s2.51cto.com/images/blog/202311/23224328_655f65103deee19191.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=" alt="全屏图标"> </div>

html5的video无法点击全屏播放 html5 全屏_css_02


我们将使用jQuery使代码更加精简。

如前所述,我们将在单击后全屏发送图像。 我们将函数包装在jQuery .on方法下。

$('.fs-button').on('click', function(){ 

}

我们首先检查该元素是否已经处于全屏模式,如果此条件返回,我们将执行webkitCancelFullScreen将其发送到普通视图。 否则,我们将使用webkitRequestFullScreen方法将其变为全屏显示。

$('.fs-button').on('click', function(){
		var elem = document.getElementById('fullscreen');
		if(document.webkitFullscreenElement) {
			document.webkitCancelFullScreen();
		}
		else {
			elem.webkitRequestFullScreen();
		};
	});

单击全屏图标,我们的图像将全屏显示,如以下屏幕截图所示。

<div>

<img src="https://s2.51cto.com/images/blog/202311/23224328_655f6510ab57d22834.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=" alt="全屏模式"> </div>

html5的video无法点击全屏播放 html5 全屏_javascript_03


全屏CSS

Webkit(以及Firefox)还提供了一组新的伪类,允许我们在元素处于全屏模式时添加样式规则。 假设我们要更改背景,我们可以用这种方式编写样式规则。

#fullscreen:-webkit-full-screen {
	background-image: url('../img/ios-linen.jpg'); 
	width: 100%;
}

现在,您应该在全屏模式下看到iOS亚麻质地。

<div> <img src="https://s2.51cto.com/images/blog/202311/23224329_655f65111b7c733913.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=" alt="ios亚麻质地">

</div>

html5的video无法点击全屏播放 html5 全屏_html_04


而已。 您可以转到演示页面以查看操作。 由于我们未使用Firefox语法指定功能,因此此演示仅在Webkit浏览器,Google Chrome和Safari中有效

其他参考


翻译自: https://www.hongkiat.com/blog/html5-fullscreen-api/