WEB全屏API简介及示例

简介: FullScreen API允许页面上的一个元素有一个全屏视图,通常情况下,会在不同的图形或媒体资源(例如视频或图像)中看到这一点,但实际上可以让页面上的任何元素都具有全屏视图。

FullScreen API允许页面上的一个元素有一个全屏视图,通常情况下,会在不同的图形或媒体资源(例如视频或图像)中看到这一点,但实际上可以让页面上的任何元素都具有全屏视图。

FullScreen API 目前在 Chrome、Firefox、Opera 和 Edge 中得到很好的支持。

如果需要对 FullScreen API 的跨平台支持,可以使用第三方脚本库 fscreenscreenfull

要在用户的浏览器上启用全屏视图,首先需要使用 Element.requestFullScreen 函数请求获取许可。这与请求访问位置数据不同,浏览器基本上是通过判断用户是否执行了一个特定的操作来批准或拒绝全屏访问,比如单击一个允许按钮来确定请求是否被接受。

如果用户想要退出全屏视图,可以使用通用退出全屏窗口的方式,以及按下退出键。

全屏section

FullScreen API最常用于放大图像和视频,但它们都有自己的小问题需要考虑,所以将从一些更简单的内容开始:一个带有按钮的HTML5页面,将页面部分内容转换为全屏视图。

<div class="container">
    <h1>FullScreen API演示</h1>
    <p>
        FullScreen
        API允许页面上的一个元素有一个全屏视图,通常情况下,会在不同的图形或媒体资源(例如视频或图像)中看到这一点,但实际上可以让页面上的任何元素都具有全屏视图。
    </p>
    <section class="fullscreen-enabled">
        <h2 class="fullscreen-intro">
            一个带有按钮的HTML5页面,将页面部分内容转换为全屏视图。
        </h2>
        <h3 class="fullscreen-more">全屏模式下才会显示的内容</h3>
        <div class="bottom-right">
            <button aria-label="点击切换全屏方式" class="button button-blue">
                全屏方式
            </button>
        </div>
    </section>
</div>
<script type="text/javascript">
    const toggleFullScreen = (el) => {
        if (!document.fullscreenElement) {
            el.requestFullscreen();
            return;
        }
        document.exitFullscreen();
    };
    const button = document.querySelector("button");
    button.addEventListener("click", () => {
        toggleFullScreen(document.querySelector(".fullscreen-enabled"));
    });
</script>

实际效果可以点击查看DEMO

全屏modal

模态弹窗图层是现代前端主要的弹窗方式,下面来定义一个全屏模态弹窗,主要代码如下:

<div class="container">
    <h1>FullScreen API演示</h1>
    <p>
        FullScreen
        API允许页面上的一个元素有一个全屏视图,通常情况下,会在不同的图形或媒体资源(例如视频或图像)中看到这一点,但实际上可以让页面上的任何元素都具有全屏视图。
    </p>
    <button
        aria-label="点击打开全屏modal"
        class="button fullscreener button-blue"
    >
        全屏 Modal
    </button>
</div>
<section
    role="dialog"
    aria-modal="true"
    aria-labelledby="modalLabel"
    class="fullscreen-enabled fullscreen-modal"
>
    <div class="modal-content">
        <h2 id="modalLabel" class="fullscreen-more">
            全屏模式下才会显示的内容
        </h2>
        <span
            role="button"
            tabindex="0"
            aria-label="Close the modal"
            class="fullscreener close"
        ></span>
        <div class="modalBody">
            <p>
                要在用户的浏览器上启用全屏视图,首先需要使用
                Element.requestFullScreen
                函数请求获取许可。这与请求访问位置数据不同,浏览器基本上是通过判断用户是否执行了一个特定的操作来批准或拒绝全屏访问,比如单击一个允许按钮来确定请求是否被接受。
            </p>
        </div>
    </div>
</section>
<script type="text/javascript">
    const toggleFullScreen = (el) => {
        if (!document.fullscreenElement) {
            el.requestFullscreen();
            return;
        }
        document.exitFullscreen();
    };
    const buttons = document.querySelectorAll(".fullscreener");
    const fullScreenEnabledEl = document.querySelector(".fullscreen-enabled");
    buttons.forEach((button) => {
        button.addEventListener("click", () => {
            toggleFullScreen(fullScreenEnabledEl);
        });
        button.addEventListener("keydown", (e) => {
            if (e.key === "Enter") {
                toggleFullScreen(fullScreenEnabledEl);
            }
        });
    });
</script>

实际效果可以点击查看DEMO

总结

Fullscreen API 使用起来非常简单,可以为前端带来很多意向不到的效果,除了文章介绍的两种简单使用,还可以用于全屏图片查看。


相关文章
|
9天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
34 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
6天前
|
JSON API 数据安全/隐私保护
淘宝评论API接口操作步骤详解,代码示例参考
淘宝评论API接口是淘宝开放平台提供的一项服务,通过该接口,开发者可以访问商品的用户评价和评论。这些评论通常包括评分、文字描述、图片或视频等内容。商家可以利用这些信息更好地了解消费者的需求和偏好,优化产品和服务。同时,消费者也可以从这些评论中获得准确的购买参考,做出更明智的购买决策。
|
17天前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
41 11
|
1月前
|
API 开发工具 开发者
探究亚马逊国际获得AMAZON商品详情 API 接口功能、作用与实际应用示例
亚马逊提供的Amazon Product Advertising API或Selling Partner API,使开发者能编程访问亚马逊商品数据,包括商品标题、描述、价格等。支持跨境电商和数据分析,提供商品搜索和详情获取等功能。示例代码展示了如何使用Python和boto3库获取特定商品信息。使用时需遵守亚马逊政策并注意可能产生的费用。
|
1月前
|
JSON API 数据格式
Amazon商品详情API,json数据格式示例参考
亚马逊商品详情API接口返回的JSON数据格式通常包含丰富的商品信息,以下是一个简化的JSON数据格式示例参考
|
1月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
52 1
|
1月前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
60 2
|
1月前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
28天前
|
JSON API 数据库
电商拍立淘按图搜索API接口,数据格式示例
电商拍立淘按图搜索API接口系列为电商平台和购物应用提供了强大的图像搜索功能,以下是其文档说明的详细参考
|
1月前
|
JSON API 数据格式
携程API接口系列,酒店景点详情请求示例参考
携程API接口系列涵盖了酒店预订、机票预订、旅游度假产品预订、景点门票预订等多个领域,其中酒店和景点详情请求是较为常用的功能。以下提供酒店和景点详情请求的示例参考
下一篇
DataWorks