html实现iframe全屏

前言

html浏览器全屏操作,基于jquery

iframe全屏、指定标签全屏

实现

css

css 复制代码
/** 全屏*/
.lay-dbclick-box{
	position: relative;
	width: 100%;
    height: 100%;
}
.lay-dbclick-screen{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
    height: 100%;
    z-index: 99999999999999;
}
.lay-fullScreen{
	position: fixed;
    left: 0;
    top: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    width: 100%;
    height: 100%;
    z-index: 9999999999999;
}

html

关键是lay-dbclick-box和lay-dbclick-screen,其中的iframe是内容

html 复制代码
<div class="lay-dbclick-box">
	<iframe src="" width="100%" height="100%" id="fullb" frameborder="0" allowfullscreen="" ></iframe>
	<div class="lay-dbclick-screen"></div>
</div>

js

javascript 复制代码
openFullScreen();

/**
 * -------------------------------------------------------------------------------------------------------
 * 通用全屏操作
 */
function openFullScreen(){
	// 双击全屏/退出全屏
	$(".lay-dbclick-screen").dblclick(function(){
		var val = $(this).parent().attr("lay-svalue");
		if(!val){
			$(this).parent().addClass("lay-fullScreen");
			$(this).parent().attr("lay-svalue", 1);
			fullScreen();
		}else{
			$(this).parent().removeClass("lay-fullScreen");
			$(this).parent().attr("lay-svalue", "");
			exitFullscreen();
		}
	})
	// 全屏事件监听
	document.addEventListener("fullscreenchange", function(){
        if (getFullscreenElement() == null) {
        	console.log("-----------------[退出全屏]--------------")
           $(".lay-fullScreen").attr("lay-svalue", "");
			$(".lay-fullScreen").removeClass("lay-fullScreen");
			exitFullscreen();
        }else {
            console.log("-----------------[打开全屏]--------------")
        }
    })
}

/**
 * -------------------------------------------------------------------------------------------------------
 * 获取全屏状态
 */
function getFullscreenElement(){
    return (
        document['fullscreenElement'] ||
        document['mozFullScreenElement'] ||
        document['msFullScreenElement'] ||
        document['webkitFullscreenElement'] || null
    );
}

/**
 * -------------------------------------------------------------------------------------------------------
 * 全屏
 */
function fullScreen() {
    var element = document.documentElement;
    if (element.requestFullscreen) {
        element.requestFullscreen();
    } else if (element.msRequestFullscreen) {
        element.msRequestFullscreen();
    } else if (element.mozRequestFullScreen) {
        element.mozRequestFullScreen();
    } else if (element.webkitRequestFullscreen) {
        element.webkitRequestFullscreen();
    }
}

/**
 * --------------------------------------------------------------------------------------------------------
 * 退出全屏
 */
function exitFullscreen() {
    if (document.exitFullscreen) {
        document.exitFullscreen();
    } else if (document.msExitFullscreen) {
        document.msExitFullscreen();
    } else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
    } else if (document.webkitExitFullscreen) {
        document.webkitExitFullscreen();
    }
}
相关推荐
BestAns5 分钟前
Postman 平替?这款轻量接口测试工具,本地运行 + 批量回归超实用!
前端
CsharpDev-奶豆哥17 分钟前
JavaScript性能优化实战大纲
开发语言·javascript·性能优化
专注前端30年25 分钟前
Webpack进阶玩法全解析(性能优化+高级配置)
前端·webpack·性能优化
烛阴42 分钟前
Lua世界的基石:变量、作用域与七大数据类型
前端·lua
张拭心43 分钟前
“不卷 AI、不碰币、下班不收消息”——Android 知名技术大牛 Jake Wharton 的求职价值观
android·前端·aigc
SoaringHeart1 小时前
Flutter疑难解决:单独让某个页面的电池栏标签颜色改变
前端·flutter
Yeats_Liao1 小时前
Go Web 编程快速入门 13 - 部署与运维:Docker容器化、Kubernetes编排与CI/CD
运维·前端·后端·golang
Yeats_Liao1 小时前
Go Web 编程快速入门 14 - 性能优化与最佳实践:Go应用性能分析、内存管理、并发编程最佳实践
前端·后端·性能优化·golang
蒜香拿铁1 小时前
Angular【http服务端交互】
前端·http·angular.js
游戏开发爱好者81 小时前
Fiddler抓包实战教程 从安装配置到代理设置,详解Fiddler使用方法与调试技巧(HTTPHTTPS全面指南)
前端·测试工具·小程序·https·fiddler·uni-app·webview