优化了自制的浏览器主页的全屏功能

第一次修改

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>全屏功能</title>
    <style>
        #fullBtn .icon {
            width: 35px;
            margin-top: 5px;
        }

        #fullBtn .shrink {
            display: none;
        }
    </style>
</head>

<body>
    <div id="fullBtn" class="divBtn">
        <!-- 全屏 -->
        <span class="fullScreen">
            <svg t="1719287647055" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
                p-id="11666" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
                <path
                    d="M0 0v1024h1024V0z m409.6 921.6H102.4v-307.2h102.4v204.8h204.8zM409.6 204.8H204.8v204.8H102.4V102.4h307.2z
                         m512 614.4v102.4h-307.2v-102.4h204.8v-204.8h102.4z m0-614.4v204.8h-102.4V204.8h-204.8V102.4h307.2z"
                    fill="#333333" p-id="11667"></path>
            </svg>
        </span> <!-- 全屏 结束-->
        <!-- 收缩 -->
        <span class="shrink">
            <svg t="1719288607653" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
                p-id="14512" xmlns:xlink="http://www.w3.org/1999/xlink" width="200.1953125" height="200">
                <path d="M884.5 59c44.459 0 80.5 36.041 80.5 80.5v745c0 
                       44.459-36.041 80.5-80.5 80.5h-745C95.041 965 59 928.959 59 884.5v-745C59 
                       95.041 95.041 59 139.5 59h745z m-52.752 520.492H578.492v252.4l0.007 0.587c0.312 13.471 
                       11.33 24.296 24.876 24.296l0.587-0.007c13.471-0.312 24.296-11.33 24.296-24.876l-0.003-167.448 
                       208.267 208.268 0.468 0.455c9.748 9.26 25.159 9.108 34.722-0.455 9.717-9.717 9.717-25.472 0-35.19L663.446 
                       629.257h168.302l0.587-0.006c13.471-0.312 24.296-11.33 24.296-24.876 0-13.742-11.14-24.883-24.883-24.883z 
                       m-382.537 0H195.68l-0.588 0.007c-13.47 0.312-24.295 11.33-24.295 24.876l0.007 0.587c0.312 13.471 11.33 
                       24.296 24.876 24.296l165.877-0.001L162.893 828.76l-0.454 0.468c-9.239 9.769-9.055 25.179 0.528 34.722 
                       9.738 9.697 25.493 9.663 35.19-0.074l201.288-202.139v170.605l0.008 0.587c0.312 13.471 11.33 24.295 24.876 
                       24.295 13.742 0 24.882-11.14 24.882-24.882v-252.85z m422.464-427.241c-9.738-9.697-25.493-9.664-35.19 
                       0.074l-208.23 209.108 0.003-172.41-0.007-0.587c-0.312-13.471-11.33-24.295-24.876-24.295-13.742 0-24.883 
                       11.14-24.883 24.882v253.384h253.099l0.587-0.007c13.471-0.312 24.295-11.33 
                       24.295-24.876l-0.006-0.587c-0.312-13.471-11.33-24.295-24.876-24.295l-164.181-0.001 204.339-205.2 
                       0.454-0.469c9.24-9.768 9.055-25.178-0.528-34.721z m-686.14-0.86c-9.769-8.81-24.838-8.512-34.247 0.897-9.717 
                       9.717-9.717 25.472 0 35.19l204.736 204.736-160.344 0.001-0.588 0.007c-13.47 0.312-24.295 11.33-24.295 24.876 
                       0 13.742 11.14 24.883 24.883 24.883h253.503V189.023l-0.006-0.587c-0.312-13.471-11.33-24.295-24.876-24.295l-0.588 
                       0.006c-13.47 0.312-24.295 11.33-24.295 24.876l-0.002 176.203-212.938-212.938-0.468-0.455z"
                    fill="#333333" p-id="14513">
                </path>
            </svg>
        </span>
        <!-- 收缩 结束-->
    </div>
    <script>
        // 定义一个窗口加载完毕后的回调函数。
        window.onload = () => {
            // 页面内容加载完成后执行
            // 获取网页中 ID 为 fullBtn 的元素。
            const fullBtn = document.getElementById("fullBtn");
            // 获取 fullBtn 元素中的类名为 fullScreen 的第一个子元素。
            const fullScreen = fullBtn.querySelector(".fullScreen");
            // 获取 fullBtn 元素中的 类名为 shrink的第一个子元素。
            const shrink = fullBtn.querySelector(".shrink");
            // 给全屏按钮添加点击事件监听器
            fullBtn.addEventListener("click", function () {
                if (!document.fullscreenElement) {
                    // 如果当前不是全屏状态,则调用开启全屏的函数
                    openFullscreen();
                    // 切换按钮的显示状态
                    toggleButtons();
                } else {
                    // 如果当前是全屏状态,则调用关闭全屏的函数
                    closeFullscreen();
                    // 切换按钮的显示状态
                    toggleButtons();
                }
            });
            // 切换按钮的显示状态
            // 1. 函数定义
            function toggleButtons() {
                // 2. 切换类名 "shrink" 和 "fullScreen"
                // 对 fullScreen 元素(全屏按钮)的类列表进行处理。
                // 如果 fullScreen 元素没有 shrink 类,则添加该类;
                // 如果 fullScreen 元素有 shrink 类,则移除该类。
                fullScreen.classList.toggle("shrink");
                // 对 shrink 元素(收缩按钮)的类列表进行处理。
                // 如果 shrink 元素没有 shrink 类,则添加该类;
                // 如果 shrink 元素有 shrink 类,则移除该类。
                shrink.classList.toggle("shrink");
            }
            // 开启全屏功能
            function openFullscreen() {
                // 获取文档的根元素 (HTML 元素)
                const docElm = document.documentElement;
                // 检查当前浏览器是否支持 requestFullscreen 方法
                if (docElm.requestFullscreen) {
                    // 调用 requestFullscreen 方法以启动全屏模式
                    docElm.requestFullscreen();
                } else if (docElm.mozRequestFullScreen) { // 适用于 Mozilla Firefox
                    // 调用 Firefox 的专有全屏方法
                    docElm.mozRequestFullScreen();
                } else if (docElm.webkitRequestFullScreen) { // 适用于 Chrome, Safari, 和 Opera
                    // 调用 Webkit 内核浏览器(Chrome, Safari, Opera)的专有全屏方法
                    docElm.webkitRequestFullScreen();
                } else if (docElm.msRequestFullscreen) { // 适用于 IE/Edge
                    // 调用 Microsoft Edge 和的专有全屏方法
                    docElm.msRequestFullscreen();
                }
            }
            // 关闭全屏功能
            function closeFullscreen() {
                // 检查当前浏览器是否支持 exitFullscreen 方法
                if (document.exitFullscreen) {
                    // 调用 exitFullscreen 方法以退出全屏模式
                    document.exitFullscreen();
                } else if (document.mozCancelFullScreen) { // 适用于 Mozilla Firefox
                    // 调用 Firefox 的专有退出全屏方法
                    document.mozCancelFullScreen();
                } else if (document.webkitExitFullscreen) { // 适用于 Chrome, Safari, 和 Opera
                    // 调用 Webkit 内核浏览器(Chrome, Safari, Opera)的专有退出全屏方法
                    document.webkitExitFullscreen();
                } else if (document.msExitFullscreen) { // 适用于 IE/Edge
                    // 调用 Microsoft Edge 和的专有退出全屏方法
                    document.msExitFullscreen();
                }
            }
        }
        // 全屏功能优化结束
    </script>
</body>

</html>

第二次修改减少代码量

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>全屏功能</title>
    <style>
        #fullBtn {
            .icon {
                width: 35px;
                margin-top: 5px;
            }

            .shrink {
                display: none;
            }
        }
    </style>
</head>

<body>
    <div id="fullBtn" class="divBtn">
        <span class="fullScreen">
            <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200"
                height="200">
                <path
                    d="M0 0v1024h1024V0z m409.6 921.6H102.4v-307.2h102.4v204.8h204.8zM409.6 204.8H204.8v204.8H102.4V102.4h307.2z m512 614.4v102.4h-307.2v-102.4h204.8v-204.8h102.4z m0-614.4v204.8h-102.4V204.8h-204.8V102.4h307.2z"
                    fill="#333333"></path>
            </svg>
        </span>
        <span class="shrink">
            <svg class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200"
                height="200">
                <path
                    d="M884.5 59c44.459 0 80.5 36.041 80.5 80.5v745c0 44.459-36.041 80.5-80.5 80.5h-745C95.041 965 59 928.959 59 884.5v-745C59 95.041 95.041 59 139.5 59h745z m-52.752 520.492H578.492v252.4l0.007 0.587c0.312 13.471 11.33 24.296 24.876 24.296l0.587-0.007c13.471-0.312 24.296-11.33 24.296-24.876l-0.003-167.448 208.267 208.268 0.468 0.455c9.748 9.26 25.159 9.108 34.722-0.455 9.717-9.717 9.717-25.472 0-35.19L663.446 629.257h168.302l0.587-0.006c13.471-0.312 24.296-11.33 24.296-24.876 0-13.742-11.14-24.883-24.883-24.883z m-382.537 0H195.68l-0.588 0.007c-13.47 0.312-24.295 11.33-24.295 24.876l0.007 0.587c0.312 13.471 11.33 24.296 24.876 24.296l165.877-0.001L162.893 828.76l-0.454 0.468c-9.239 9.769-9.055 25.179 0.528 34.722 9.738 9.697 25.493 9.663 35.19-0.074l201.288-202.139v170.605l0.008 0.587c0.312 13.471 11.33 24.295 24.876 24.295 13.742 0 24.882-11.14 24.882-24.882v-252.85z m422.464-427.241c-9.738-9.697-25.493-9.664-35.19 0.074l-208.23 209.108 0.003-172.41-0.007-0.587c-0.312-13.471-11.33-24.295-24.876-24.295-13.742 0-24.883 11.14-24.883 24.882v253.384h253.099l0.587-0.007c13.471-0.312 24.295-11.33 24.295-24.876l-0.006-0.587c-0.312-13.471-11.33-24.295-24.876-24.295l-164.181-0.001 204.339-205.2 0.454-0.469c9.24-9.768 9.055-25.178-0.528-34.721z m-686.14-0.86c-9.769-8.81-24.838-8.512-34.247 0.897-9.717 9.717-9.717 25.472 0 35.19l204.736 204.736-160.344 0.001-0.588 0.007c-13.47 0.312-24.295 11.33-24.295 24.876 0 13.742 11.14 24.883 24.883 24.883h253.503V189.023l-0.006-0.587c-0.312-13.471-11.33-24.295-24.876-24.295l-0.588 0.006c-13.47 0.312-24.295 11.33-24.295 24.876l-0.002 176.203-212.938-212.938-0.468-0.455z"
                    fill="#333333"></path>
            </svg>
        </span>
    </div>
    <script>
        // 定义一个窗口加载完毕后的回调函数。
        window.onload = () => {
            // 页面内容加载完成后执行
            // 获取网页中 ID 为 fullBtn 的元素。
            const fullBtn = document.getElementById("fullBtn");
            // 获取 fullBtn 元素中的类名为 fullScreen 的第一个子元素。
            const fullScreen = fullBtn.querySelector(".fullScreen");
            // 获取 fullBtn 元素中的 类名为 shrink的第一个子元素。
            const shrink = fullBtn.querySelector(".shrink");
            // fullBtn 元素添加了一个点击事件监听器。当 fullBtn 被点击时,会触发随后的回调函数
            fullBtn.addEventListener("click", () => {
                // 检测全屏状态:
                if (!document.fullscreenElement) {
                    // 请求全屏:
                    // requestFullscreen 是标准方法。
                    document.documentElement.requestFullscreen?.() ||
                        // mozRequestFullScreen 是针对 Firefox 浏览器的实现。
                        document.documentElement.mozRequestFullScreen?.() ||
                        // webkitRequestFullScreen 是针对旧版 Chrome 和 Safari 浏览器的实现。
                        document.documentElement.webkitRequestFullScreen?.() ||
                        // msRequestFullscreen 是针对 Internet Explorer 浏览器的实现。
                        document.documentElement.msRequestFullscreen?.();
                    // 退出全屏:
                } else {
                    // exitFullscreen 是标准方法。
                    document.exitFullscreen?.() ||
                        // mozCancelFullScreen 是 Firefox 专有方法。
                        document.mozCancelFullScreen?.() ||
                        // webkitExitFullscreen 是旧版 Chrome 和 Safari 浏览器的实现。
                        document.webkitExitFullscreen?.() ||
                        // msExitFullscreen 是 IE/Edge 的实现。
                        document.msExitFullscreen?.();
                }
                // 对 fullScreen 元素(全屏按钮)的类列表进行处理。
                // 如果 fullScreen 元素没有 shrink 类,则添加该类;
                // 如果 fullScreen 元素有 shrink 类,则移除该类。
                fullScreen.classList.toggle("shrink");
                // 对 shrink 元素(收缩按钮)的类列表进行处理。
                // 如果 shrink 元素没有 shrink 类,则添加该类;
                // 如果 shrink 元素有 shrink 类,则移除该类。
                shrink.classList.toggle("shrink");
            });
        };
    </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/743276.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于window的安装

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 第一windows的分类 旗舰版 个人版…

2024最新算法:北极海鹦优化(Arctic puffin optimization,APO)算法求解23个函数,MATLAB代码

一、算法介绍 北极海鹦优化&#xff08;Arctic puffin optimization&#xff0c;APO&#xff09;算法是2024年提出一种智能优化算法。该算法模拟海鹦在空中飞行和水下觅食两个阶段的行为&#xff0c;旨在实现勘探与开发之间更好的平衡。该算法包括几个关键操作&#xff0c;包括…

张家界首迎新V系客车!苏州金龙携手中信旅运打造旅游客运新范本

在国际张&#xff08;张家界&#xff09;这片美丽而又神奇的的土地上&#xff0c;伴随着旅游市场持续火爆的&#xff0c;是旅游客运行业的激烈竞争。 如何在旅游市场的近乎“白刃战”中突出重围&#xff0c;成为众多旅游运输企业亟待破解的一道难题。然而&#xff0c;作为张家…

Linux源码阅读笔记06-RCU机制和内存优化屏障

RCU机制 RCU&#xff08;Read-Copy-Update&#xff09;&#xff0c;是Linux内核重要的同步机制。Linux内核有原子操作&#xff0c;读写信号量&#xff0c;为什么要单独设计一个比较复杂的新机制呢&#xff1f; spinlock和mutex信号量都使用了原子操作&#xff0c;多CPU在访问…

在Python中定义和使用函数及模块

我将介绍如何在Python中定义和使用函数&#xff0c;以及如何创建和使用Python模块。这些基础知识将帮助你编写更高效和可复用的代码。 目录 函数基础定义和调用函数参数传递 函数式编程匿名函数高阶函数 装饰器模块和包常用的标准库模块 函数基础 定义和调用函数 定义函数&a…

这样制作宣传册,才能提升品牌的曝光度

​在当今竞争激烈的市场环境中&#xff0c;一份高质量的宣传册不仅可以展示企业的实力和特色&#xff0c;还能有效提升品牌的曝光度。要想制作出既能吸引眼球又能传达信息的宣传册&#xff0c;需要如何制作呢&#xff1f; 1.明确宣传目标&#xff1a;制作翻页电子宣传册之前&am…

C语言·动态内存管理

1. 为什么要有动态内存管理&#xff1f; 例1&#xff1a; //固定的向内存申请4个字节 int a 10;//申请连续的一块空间 int arr[10]; 这些数据一旦声明定义之后就会在内存中有一块空间&#xff0c;这些空间都是固定的&#xff0c;为了让内存使用更加灵活&#xff0c;这时我们…

Spark SQL 血缘解析方案

背景 项目背景建设数据中台,往往数据开发人员首先需要能够通过有效的途径检索到所需要的数据,然后根据检索的数据模型进行业务加工然后得到一些中间模型,最后再通过数据抽取工具或者OLAP分析工具直接将数据仓库中加工好的公共模型输出到应用层。这里我不在去介绍数据仓库为…

【Qt】day2

文章目录 菜单栏工具栏状态栏铆接部件&#xff08;浮动窗口&#xff09;中心部件添加图片对话框模态对话框非模态对话框标准对话框&#xff08;信息对话框&#xff09;错误对话框信息对话框提问对话框警告对话框 其他标准对话框颜色对话框文件对话框 字体对话框 登录窗口布局按…

《重构》读书笔记【第1章 重构,第一个示例,第2章 重构原则】

文章目录 第1章 重构&#xff0c;第一个示例1.1 重构前1.2 重构后 第2章 重构原则2.1 何谓重构2.2 两顶帽子2.3 为何重构2.4 何时重构2.5 重构和开发过程 第1章 重构&#xff0c;第一个示例 我这里使用的IDE是IntelliJ IDEA 1.1 重构前 plays.js export const plays {&quo…

将 MinIO 与 Keycloak OIDC 集成

Keycloak是一种单点登录解决方案。使用Keycloak&#xff0c;用户使用Keycloak而不是MinIO进行身份验证。如果没有Keycloak&#xff0c;您将不得不为每个用户创建一个单独的身份 - 从长远来看&#xff0c;这将很麻烦。您需要一个集中身份解决方案来管理 MinIO 的身份验证和授权。…

Python深度学习技术

原文链接&#xff1a;Python深度学习技术 近年来&#xff0c;伴随着以卷积神经网络&#xff08;CNN&#xff09;为代表的深度学习的快速发展&#xff0c;人工智能迈入了第三次发展浪潮&#xff0c;AI技术在各个领域中的应用越来越广泛。Transformer模型&#xff08;BERT、GPT-…

3.2 文件包含漏洞渗透实战(OWASP实战训练)

3.2 文件包含漏洞渗透实战&#xff08;OWASP实战训练&#xff09; 原理及危害3.低安全级别渗透3.1本地文件包含漏洞3.2 本地文件包含漏洞webshell3.3远程文件包含漏洞 上一节讲了本地文件包含和远程文件包含 本地文件包含需要将文件传上去或者不传上去&#xff08;本地系统的一…

导出 S 参数扫描结果供 INTERCONNECT 使用

导出 S 参数扫描结果供 INTERCONNECT 使用 正文正文 有时候,对于 FDTD 无法直接进行仿真的大型仿真链路,我们需要使用 FDTD 针对单个小的模块进行仿真,再将得到的 S 参数结果导入到 INTERCONNECT 中使用,最终完成整个链路的仿真。通常完成 S 参数扫描后其状态如下图所示:…

【数据结构】栈的定义与实现(附完整运行代码)

目录 一、栈的定义 二、顺序栈 链栈比较 三、栈的实现&#xff08;顺序栈&#xff09; 3.1 ❥ 定义栈结构 3.2 ❥ 初始化 3.3 ❥ 销毁 3.4 ❥ 插入&#xff08;入栈&#xff09; 3.5 ❥ 删除 &#xff08;出栈&#xff09; 3.6 ❥ 获取栈顶元素 3.7 ❥ 判空 3.8 ❥…

1962springboot VUE社区服务平台系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE社区服务平台系统是一套完善的完整信息管理类型系统&#xff0c;结合springboot框架和VUE完成本系统&#xff0c;对理解vue java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和…

光泽正在褪去,所以我们又回到了人工智能领域。

光泽正在褪去&#xff0c;所以我们又回到了人工智能领域。 人工智能冬天将被私有化 自从“人工智能”这个流行词在20世纪50年代被创造出来以来&#xff0c;人工智能经历了几次繁荣和萧条周期。 一种新的技术方法看起来很有趣&#xff0c;并取得了一些成果。它被荒谬地炒作并获…

EdgeOne 边缘函数 + Hono.js + Fauna 搭建个人博客

一、背景 虽然 “博客” 已经是很多很多年前流行的东西了&#xff0c;但是时至今日&#xff0c;仍然有一部分人在维护自己的博客站点&#xff0c;输出不少高质量的文章。 我使用过几种博客托管平台或静态博客生成框架&#xff0c;前段时间使用Hono.jsFauna &#xff0c;基于 …

热电发电机越来越受到研发关注

热电发电机 (TEG) 利用热量&#xff08;或更准确地说&#xff0c;温差&#xff09;和众所周知的塞贝克效应来发电。它们的应用范围从收集可用热能&#xff0c;尤其是在工业和其他情况下“浪费”的热能&#xff0c;到在放射性同位素热发电机 (RTG) 中使用航天器的放射性电源作为…

静电场的基本方程

目录 场积分方程 通量&#xff08;高斯定理&#xff09; 环量 场微分方程 散度 旋度 小结 补充知识 立体角 场积分方程 通量&#xff08;高斯定理&#xff09; 环量 场微分方程 散度 旋度 小结 补充知识 立体角