JavaScript 控制浏览器全屏展示


前言

浏览器全屏功能解释


一、全屏区分

1.浏览器有两种全屏模式,第一种为浏览器窗口行为 称为 视图全屏,在浏览器工具栏中 缩放 一栏
点击全屏按钮,或者按 F11 键(几乎所有软件都会支持的通用功能)。

2.浏览器 HTML 全屏模式,意思就是使浏览器 HTML Dom 铺满整个屏幕展示的全屏模式。

以上两种,由于安全策略原因,在非低版本 IE 浏览器中,都不支持使用脚本控制。
也就是说只能使用第二种 HTML Dom 控制全屏的方式

两种全屏属于两种模式,并行使用使视觉效果存在一些冲突,Firefox 浏览器比较明显。但并不属于 bug


二、HTML Dom 全屏模式

IE浏览器只兼容 IE11

展开全屏

使用 请求全屏的方法 requestFullscreen 实现

var el = document.documentElement;
// 兼容各个浏览器请求全屏方法
 ( el.requestFullscreen
|| el.webkitRequestFullScreen
|| el.mozRequestFullScreen 
|| el.msRequestFullscreen).call(el);

使用 call 方法为了 把 this 指向回 el

还有 上诉方法中,除了前缀不一样,后面的 S 也有大小写区分,千万不要写错


退出全屏

使用退出全屏方法 exitFullscreen

// 兼容各个浏览器退出全屏方法
 ( document.exitFullscreen
|| document.msExitFullscreen
|| document.mozCancelFullScreen
|| document.webkitExitFullscreen).call(document);

使用 call 方法为了 把 this 指向回 document

还有 上诉方法中,除了前缀不一样,后面的 S 也有大小写区分,千万不要写错


三、兼容 IE 10 及 以下方式

使用 ActiveXObject 对象 触发 F11 按键

document.documentElement.onclick = function(){
	var wscript = new ActiveXObject("WScript.Shell");
	if (wscript!=null) {
	   wscript.SendKeys("{F11}");
	}
}

此方法对于现在的IE 浏览器默认设置并不支持,也受限于安全影响,想体验一下此方法的童鞋可以 点此处 查看如何修改 IE 配置,允许使用 ActiveXObject 对象。

下面 gif 图演示上面代码效果
在这里插入图片描述

DEMO

Demo 下载 地址 全屏演示Demo 下载

原本是想放一个在线版本的,由于在线工具使用iframe 嵌套
不容易直接实现,有兴趣可以去看看在线代码是怎么样的
想直接尝试效果,下载上面的Demo尝试

总结

为了解释完善,看了一堆资料,下面把看的资料贴出来,有兴趣的童鞋可以点进去瞅瞅。

1.https://stackoverflow.com/questions/1125084/how-to-make-the-window-full-screen-with-javascript-stretching-all-over-the-scre/7525760#7525760

2.https://hacks.mozilla.org/2012/01/using-the-fullscreen-api-in-web-browsers/

3.https://gist.github.com/1710727

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 是一种基于 JavaScript 的前端框架,用于构建用户界面。ECharts 是百度团队开发的一款基于 JavaScript 的数据可视化库,用于创建各种图表和大屏展示。 要实现大屏展示浏览器全屏功能,可以结合 Vue 和 ECharts 来实现。下面介绍一种简单的实现方法。 首先,需要在 Vue 项目中引入 ECharts 库。可以通过 npm 或者直接下载 ECharts 的 JavaScript 文件,并在项目中引入。 接下来,在 Vue 组件中,使用 ECharts 创建需要展示的图表。可以通过配置项来定义图表的类型、样式、数据等。 然后,在 Vue 组件中使用全屏展示的功能。可以通过监听窗口大小变化的事件,在窗口大小变化时重新调整图表的大小以适应全屏展示。可以使用 Vue 的生命周期钩子函数或者添加事件监听器来实现。 具体实现方法可以参考以下步骤: 1. 在 Vue 组件的 template 中添加一个 div 用于放置图表,并为该 div 添加一个唯一的 id。 2. 在 Vue 组件的 created 钩子函数(或其他适当的生命周期钩子函数)中,使用 ECharts 的 API 创建图表,并将图表放置在步骤 1 中的 div 中。 3. 使用 Vue 的 mounted 钩子函数(或其他适当的生命周期钩子函数)来添加窗口大小变化的事件监听器。当窗口大小变化时,调用 ECharts 的 API 调整图表的大小。 4. 在 Vue 组件的 destroyed 钩子函数中,移除窗口大小变化的事件监听器,以避免内存泄漏和其他问题。 通过以上步骤,就可以实现基于 Vue 和 ECharts 的浏览器全屏展示功能。当浏览器窗口大小变化时,图表会自动调整大小以适应全屏展示。这样可以提升用户体验,使得大屏展示更加美观和实用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值