前端js使浏览器窗口全屏与退出----浏览器全屏时 监测通过esc按键退出全屏 (退出全屏时有页面上的相关处理)

拥抱无限视野:WebKit 全屏API的沉浸式体验解析 WebKit 对全屏API的全面支持为开发者提供了一种强大且灵活的方式来实现 Web 应用的全屏体验。通过本文的详细解析和代码示例,你现在应该对如何在 WebKit 驱动的浏览器中使用全屏API有了深入的理解。掌握全屏API的使用,将使你能够构建更加丰富和沉浸的 Web 应用。无论是视频播放、图片浏览还是游戏应用,全屏API都能提供更加专注和引人入胜的用户体验。随着 Web 技术的不断发展,全屏API 和 WebKit 的支持也在不断进化,未来将提供更多创新和优化。 阅读详情

vue项目  项目分为顶部导航、侧边导航、以及右边mainContent区域

需求是  让项目的其中一个页面有全屏功能   并且在全屏时隐藏掉顶部的顶导航栏

实现:

1.在state里  定义一个全局flag  根据这个flag来控制顶导航的显示与隐藏

定义在了usr  module里   在store里引入就可以了

2.在页面上的操作

顶导航页面:

<el-header class="header" :style="{'display': (this.$store.state.user.screenFlag ? 'block': 'none')}">

通过定义的全局标志位控制顶导航是否显示
子页面里:
<i class="el-icon-rank" @click="getFullScreen">

子页面里操作:

getFullScreen(){
  //点击操作是否全屏时  对标志位取反
  this.$store.commit('SET_NUM', !(this.$store.state.user.screenFlag));
  this.$store.state.user.screenFlag ?
    this.outFullCreeen(document):this.inFullCreeen(document.documentElement)
},
inFullCreeen(element){
  let el = element;
  let rfs = el.requestFullScreen || el.webkitRequestFullScreen ||
    el.mozRequestFullScreen || el.msRequestFullscreen;
         // ie下是msRequestFullscreen   --- 要注意大小写啊。。
  if (typeof rfs != "undefined" && rfs) {
    rfs.call(el);
  } else if (typeof window.ActiveXObject != "undefined") {
    let wscript = new ActiveXObject("WScript.Shell");
    if (wscript != null) {
      wscript.SendKeys("{F11}");
    }
  }
},
outFullCreeen(element){
  let el = element;
  let cfs = el.cancelFullScreen || el.webkitCancelFullScreen ||
    el.mozCancelFullScreen || el.exitFullScreen || el.msExitFullscreen;
  if (typeof cfs != "undefined" && cfs) {
    cfs.call(el);
  } else if (typeof window.ActiveXObject != "undefined") {
    let wscript = new ActiveXObject("WScript.Shell");
    if (wscript != null) {
      wscript.SendKeys("{F11}");
    }
  }
}

到这里就可以实现通过点击控制浏览器是否全屏了

问题是全屏时按键esc  退出全屏   导航栏不出现

浏览器在全屏时  监测不到esc按键的键盘事件!

解决方法一:

created(){
  let that = this;
      //webkitfullscreenchange  是h5浏览器监控浏览器是否全屏的api
      //webkitfullscreenchange -- 谷歌  需考虑其他浏览器内核
  document.addEventListener('webkitfullscreenchange', function(e){
     //e.currentTarget.webkitIsFullScreen  可以判断浏览器是否全屏 
  if(!(e.currentTarget.webkitIsFullScreen)){
      //浏览器退出全屏时  将标志位置为true来显示顶部导航
      that.$store.commit('SET_NUM', true);
    }else{

    }
   });
     document.addEventListener('fullscreenchange', function(e){
        if(!(e.currentTarget.isFullScreen)){
          that.$store.commit('SET_NUM', true);
        }else{

        }
      });
      /!* 火狐 *!/
      document.addEventListener('mozfullscreenchange', function(e){
        if(!(e.currentTarget.mozIsFullScreen)){
          that.$store.commit('SET_NUM', true);
        }else{

        }
      });
      /!* IE *!/
      document.addEventListener('MSFullscreenChange', function(e){
        if(!(e.currentTarget.MSIsFullScreen)){
          that.$store.commit('SET_NUM', true);
        }else{

        }
      });
},

 

刚开始是通过定义全局点击是否全屏按钮的次数  判断对2取余   来全屏或退出

esc按键时  这个数加乱了  很错乱

另外监测浏览器是否全屏的方法从网上找的

checkFull()  return isFull  那个在我这不管用

解决方法二:

刚知道全屏时样式有伪类。。

那么问题就更简单了  只需要全屏的时候  让导航栏display:none就可以了  

也不用设置全局变量来关联header的行内样式了

只需要在主布局文件里加上如下样式:

:-webkit-full-screen .header {
  display: none!important;
}
:-moz-full-screen .header {
  display: none!important;
}
:-ms-fullscreen .header {
  display: none!important;
}
:fullscreen .header {
  display: none!important;
}

样式参考链接:

全屏时的伪类等等

https://blog.youkuaiyun.com/ligaoming_123/article/details/80605748

网络爬虫自动化Selenium浏览器操作 通过本教程,读者可以掌握Selenium自动化中的核心基础操作,包括如何操控浏览器窗口、调整大小、隐藏滚动条、截图以及正确关闭和退出浏览器。Selenium的这些功能不仅在自动化测试中至关重要,还能应用于许多实际的工作场景,如自动化网页数据抓取、内容监控以及模拟用户操作。无论是调整浏览器窗口的大小来模拟不同设备的浏览效果,还是通过截图保存网页状态以便调试,Selenium提供的功能足够灵活且强大,能够帮助高效地完成自动化任务。学习并熟练运用这些操作,将极大提升自动化工作的效率和质量。 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库01

此方案可满足千万级并发需求,同时支持时序数据、知识图谱和文档数据库的高效处理,通过云原生架构实现极致弹性。​:每月约$15-20万(100节点K8s集群+数据库集群+CDN流量)1. 宠物上架/下架流程。

weixin_49199313的博客 1476

Fullscreen API 全屏显示网页

第一次看到应用 Fullscreen API 全屏显示网页,是 FaceBook 中的照片放大。作为一个比较新的 API,目前只有 Safari、Chrome 和 FireFox 三种浏览器支持该特性。因为尚未发布正式版的标准,所以必须使用浏览器特定的方法,也就是应用添加前缀(webit/moz)的方法。 这个 API 不仅能够使整个页面全屏显示,也可以使页面中的某个元素全屏显示。它的设计初衷是

Rainman的专栏 2万+

【YOLOV5-5.x 源码讲解】整体项目文件导航

前言 这个项目是github的开源项目,YOLOV5:https://github.com/ultralytics/yolov5,目前已经有14.1k个Star 和 4.9k 个Folk了,非常的火。下面我会给大家逐个的文件介绍这个项目中的所有代码,希望能帮到大家。 我下的2021年4月12日更新的v5.0版本,整个项目我做了一点点的文件位置的改变,也加了点自己在其他论文中学到的tricks,不过我没有删除它源码任何一个代码。下面我会按文件逐个函数的进行攻破,因为我本人也还是研一,肯定会有很多的不足,希望大

qq_38253797的博客 6万+

fullscreenchange全屏事件监听,兼容chrome、safari

fullscreenchange全屏事件监听,兼容chrome、safari

前端开发 1万+

PHY6252开发实战:从零构建BLE串口透传应用

本文详细介绍了PHY6252开发板在BLE串口透传应用中的实战经验,包括开发环境搭建、BLE串口透传例程解析、AT指令集实现与扩展、数据透传机制优化以及常见问题排查指南。通过智能家居遥控器项目案例,展示了PHY6252在低功耗物联网设备开发中的实际应用。

weixin_29183637的博客 311

ANSYS Maxwell:从RMxprt到3D轴向磁通电机的无缝建模指南

本文详细介绍了如何利用ANSYS RMxprt作为高效起点,快速构建3D轴向磁通电机的有限元分析模型。通过RMxprt内置模板输入关键参数并完成磁路法计算后,可一键生成包含几何、材料、绕组及边界条件的即用型Maxwell 3D模型,极大简化了复杂三维结构的建模流程,使工程师能专注于性能优化与仿真分析。

weixin_29281941的博客 554

全屏问题(F11和H5全屏)

首先全屏分F11全屏:原理只是隐藏了地址栏,h5全屏:是让DOM元素全屏,例如可以让图片啦,div等,全屏后只能看到该DOM元素。 其次浏览器可能为了防止有人恶意全屏,所以全屏时监听不到F11。 解决问题思路:当一件事由两个不同的条件控制时,让一个条件去取代另一个条件。 fullscreenchange//用来监听全屏切换,但是监听不到F11,因为F11只是隐藏了地址栏 react代码: ...

qq_37179373的博客 799

Qt 调用YOLO模型(代码)

本文介绍了如何在 Qt C++ 环境中集成 YOLO 模型进行目标检测,包括模型封装、界面设计和实时处理等关键步骤。通过这种方法,你可以快速开发出具有目标检测功能的 Qt 应用程序,应用于监控系统、机器人视觉、图像分析等多个领域。

轩宇的博客 259

vue 监听全屏窗口变化

created(){ //监听各浏览器fullscreenchange 事件处理 document.addEventListener('fullscreenchange', () => { this.isfullscreen=!this.isfullscreen }); document.addEventListener('mozfullscreenchange', () => { this.isfullscreen=!this...

李特成的博客 937

人形机器人硬件电路设计入门

人形机器人属于。

blotemj.blog.youkuaiyun.com 229

14、网络切片技术:原理、应用与挑战

本文详细探讨了网络切片技术的原理、应用场景及其在5G网络中的重要性。网络切片作为一种关键的网络架构技术,能够在同一物理网络上创建多个独立的逻辑网络,以满足不同应用对安全性、可靠性和性能的多样化需求。文章深入分析了网络切片在5G、SDN/NFV等技术背景下的发展与挑战,并探讨了其在制造业、交通运输、零售等多个行业的实际应用。此外,还介绍了网络切片的部署流程、未来发展趋势以及相关技术难点,为读者全面了解网络切片技术提供了有价值的参考。

palm99的专栏 254

js全屏模式下无法监听esc按键,解决办法:onresize 监听窗口改变

js全屏模式下无法监听esc按键,解决办法:onresize 监听窗口改变 window.onresize = function() { if (!checkFull()) { // 要执行的动作 } } function checkFull() { var isFull = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenEl

艾小逗 5438

5.1 直流无刷电机(BLDC):基本控制概念

本文系统介绍了直流无刷电机(BLDC)控制系统的核心概念与技术。主要内容包括:控制系统的分层结构设计,开环与闭环控制的原理及特点,PWM调速技术及其调制方式,PID控制算法及其数字化实现方法,以及控制系统的性能评估指标。同时探讨了现代BLDC控制器硬件实现方案,并介绍了磁场定向控制(FOC)、直接转矩控制(DTC)等先进控制策略。文章全面阐述了BLDC电机控制从基本原理到前沿技术的知识体系,为相关应用提供了理论指导和技术参考。

技术工作者 490

JS 如何判断当前页面是否全屏

// 监听全屏事件触发 fullscreenchange() { let isFullScreen = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen; if (isFullScreen) { // 进入全屏 } else { // 退出全屏 } ...

IT_iosers的博客 1万+

Siemens SIMATIC软件二次开发:使用C#进行SIMATIC软件二次开发

通过使用OPC-UA通信协议和S7通信库,可以有效地在C#应用程序中与Siemens SIMATIC软件进行数据交换。OPC-UA提供了一个标准化的平台,而S7通信库则提供了直接访问PLC数据的能力。掌握这两种通信方式,将极大地增强在工业自动化领域的二次开发能力。在Siemens SIMATIC软件中,自定义功能块开发是实现二次开发的关键步骤之一。通过C#,可以创建高度定制化的功能块,以满足特定的控制需求。下面,我们将通过一个示例来展示如何使用C#开发一个自定义功能块。OPC-UA通信。

kkchenjj的博客 1414

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

前端vue实现点击实现F11全屏以及全屏后监听不到键盘事件解决方法

前端vue实现点击F11全屏以及全屏后监听不到键盘事件解决方法

notagoodwriter的博客 7106

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

关于HTML5中Video全屏监听,退出全屏事件方法(亲测有效)

最近做视频播放,要求点击图片全屏播放视频,视频退出全屏显示图片,所以需要对退出全屏事件进行处理,以下js方法亲测有效,测试浏览器(fireFox,GoogleChrome,MS.Edge,搜狗等) <script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script> <script> //jQuery监听事件(窗口状态改变) $(window).resize(functio

Ethan的博客 8769

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

vue点击网页全屏_Vue全屏插件

需求点击某按钮实现页面全屏 按下 Esc 键退出全屏 IE9以下无需兼容安装npm install --sava screenfull使用// 导入全屏第三方模块import screenfull from 'screenfull'export default {data () {return {// 全屏/不全屏isFullscreen: false}},methods: {// 全屏模式 将方...

weixin_31998661的博客 252

JS监听关闭浏览器事件之Onunload与Onbeforeunload

Onunload与Onbeforeunload Onunload,onbeforeunload都是在刷新或关闭时调用,可以在脚本中通过window.onunload来指定或者在里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。 Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要...

supeirorlw的博客 893

【JavaScript】几个不常用的绑定事件

一、fullscreenchange事件 二、pagehide事件 三、pageshow事件 四、hashchange事件 五、online事件 六、offline事件 七、popstate事件 八、devicemotion事件 九、deviceorientation事件

weixin_47040861的博客 2077

让网页瞬间变身“沉浸式体验“的秘密武器:Fullscreen API事件全解析!

Fullscreen API是一套标准化的浏览器API,它允许网页控制元素进入或退出全屏模式。与简单的CSS全屏不同,Fullscreen API能让网页真正"吞噬"整个屏幕,移除浏览器所有UI元素,为用户提供纯粹的沉浸式体验。和。它们就像全屏操作的"心跳",时刻监测着全屏状态的变化,让你能精准掌控用户体验的每一步。Fullscreen API看似简单,实则蕴含着丰富的交互可能性。通过合理使用和事件,你不仅能实现基础的全屏功能,还能为用户提供更流畅、更自然的体验。记住,全屏不是目的,而是手段。

JakeMa1024的博客 634

Clawd v0.11.0 版本深度解析:首次运行引导、自由漫游、Windows 全屏悬浮与 Codex Hook 健康体系

本指南以 [release-v0.11.0.md](https://link.gitcode.com/i/05eb3d80940d62f1ee593f32b56029a1) 为核心,逐项拆解 Clawd 桌面宠物 v0.11.0 的面向用户特性:首次运行引导向导、空闲自由漫游、晕眩旋转反应、Windows 全屏覆盖模式、Codex 官方 Hook 健康检测、Remote SSH 启动即连,以及围绕

gitblog_00994的博客 842

ResizeObserver视图观察器

监测DOM元素尺寸改变. 替换 resize事件监听。

shuxiaoxii的博客 623

如何在浏览器中实现视频画中画功能:终极使用指南

你是否曾经在观看在线课程时需要同时查阅文档?或者在追剧时想要浏览社交媒体却不想错过精彩片段?传统视频播放方式让你不得不在不同窗口间频繁切换,严重影响工作效率。今天,我将为你介绍一款能够彻底改变视频观看体验的Chrome扩展——Picture-in-Picture画中画扩展,让你真正实现视频多任务处理。 这款开源扩展基于最新的Web API技术,为用户提供了智能化的视频悬浮播放功能。无论你是学生、

gitblog_00356的博客 220

视觉后效原理与前端模拟:从猫和老鼠幻觉到UI动效避坑指南

运动后效是一种常见的视觉感知现象,其原理源于人眼神经系统的适应性机制。当视觉系统长时间接收高强度定向刺激后,神经元会产生疲劳,导致刺激停止后出现相反运动的错觉。这一现象在神经科学和视觉认知领域具有重要研究价值,能够帮助开发者理解用户视觉疲劳的成因。在工程实践中,运动后效常通过前端技术进行模拟和验证,例如使用Canvas或CSS动画创建定向运动场景,以测试UI动效的舒适性。对于UI/UX设计和游戏开发而言,掌握运动后效原理有助于规避因动效设计不当导致的用户眩晕问题,提升产品的视觉体验。本文结合“猫和老鼠追出幻

weixin_30516243的博客 597

Scrollama终极指南:5步掌握滚动叙事交互开发技巧

Scrollama是一个轻量级的JavaScript库,专门用于实现滚动叙事(scrollytelling)效果,它利用现代浏览器内置的IntersectionObserver API来替代传统的滚动事件监听,提供更流畅的性能体验。如果你正在寻找一种简单高效的方式来创建引人入胜的滚动交互页面,Scrollama正是你需要的解决方案。 ## 🎯 什么是Scrollama滚动叙事库? Scrol

gitblog_00061的博客 1107
上一篇: vue后台带token的图片回显
下一篇: axios响应拦截 接口500拦截报错信息
Borage21
博客等级 码龄11年 3粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值