上一篇
html5 视频如何全屏播放
- 前端开发
- 2025-07-29
- 6
HTML5 中,可通过设置 `
标签的
webkit-playsinline` 属性并使用 JavaScript 的
HTML5中,实现视频全屏播放有多种方法,以下是详细介绍:
使用全屏API
HTML5提供了全屏API,可让视频元素或其父元素进入全屏模式,不同浏览器对全屏方法的支持有所不同,需进行兼容性处理。
浏览器 | 全屏方法 |
---|---|
Chrome、Safari等WebKit内核浏览器 | webkitRequestFullscreen() |
Firefox | mozRequestFullScreen() |
IE/Edge | msRequestFullscreen() |
标准方法(现代浏览器) | requestFullscreen() |
示例代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8">HTML5 Video Fullscreen Example</title> <style> #myVideo { width: 100%; height: auto; } </style> </head> <body> <video id="myVideo" src="video.mp4"></video> <script> var video = document.getElementById("myVideo"); video.addEventListener("click", function () { if (video.requestFullscreen) { video.requestFullscreen(); } else if (video.mozRequestFullScreen) { video.mozRequestFullScreen(); } else if (video.webkitRequestFullscreen) { video.webkitRequestFullscreen(); } else if (video.msRequestFullscreen) { video.msRequestFullscreen(); } }); </script> </body> </html>
通过CSS设置视频尺寸
可通过CSS将视频宽度设置为100%,高度自动适应,使其在父容器中全屏显示。
示例代码:
#myVideo { width: 100%; height: auto; }
使用object-fit属性
object-fit
属性可控制视频内容在容器中的填充方式,常用于保持视频比例的同时实现全屏效果。
值 | 说明 |
---|---|
fill | 默认值,拉伸填充整个容器,不保持比例 |
contain | 保持比例,确保视频完全显示在容器内 |
cover | 保持比例,裁剪部分视频以填满容器 |
none | 保持原始比例和尺寸 |
scale-down | 类似none或contain,选择较小尺寸显示 |
示例代码:
#myVideo { width: 100%; height: 100%; object-fit: cover; object-position: center; }
响应式布局实现全屏
结合媒体查询和百分比布局,可使视频在不同设备上自适应全屏。
示例代码:
#videoContainer { width: 100%; height: 100vh; / 视口高度 / position: relative; } #myVideo { width: 100%; height: 100%; position: absolute; top: 0; left: 0; }
JavaScript动态调整尺寸
通过JS获取浏览器宽高,动态设置视频尺寸,适用于WebView等场景。
示例代码:
function resizeVideo() { var video = document.getElementById("myVideo"); video.style.width = window.innerWidth + "px"; video.style.height = window.innerHeight + "px"; } window.onload = resizeVideo; window.onresize = resizeVideo;
移动端全屏处理
在移动端(如iPhone),可直接播放全屏,若需退出全屏,可用两指缩小手势。
注意事项:
- 部分移动端浏览器(如Safari)需添加
playsinline
和webkit-playsinline
属性,防止视频跳转到系统播放器。 - Android部分版本默认全屏,可通过CSS或JS调整。
退出全屏方法
调用exitFullscreen()
方法或按Esc键可退出全屏。
示例代码:
document.getElementById("myVideo").exitFullscreen();
兼容性处理
为兼容不同浏览器,可封装全屏请求函数。
示例代码:
function fullScreen(element) { if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if (element.webkitRequestFullscreen) { element.webkitRequestFullscreen(); } else if (element.msRequestFullscreen) { element.msRequestFullscreen(); } }
FAQs
Q1:如何让视频点击后全屏播放?
A1:为视频元素添加点击事件监听器,调用全屏API即可。
video.addEventListener("click", function() { video.requestFullscreen(); });
Q2:移动端视频全屏后如何退出?
A2:在iOS上,用两指缩小手势可退出全屏;