每日技术总结:点击按钮触发浏览器全屏显示

 

今年3月换了家新公司,为了适应新环境,写每日技术总结的计划就中止了。现在在新公司两个多月,还算适应了。解决工作中的问题都不在话下。但总觉得缺少点什么。慢慢开始焦虑,迷茫,不想停留在这种安逸的状态。

总结一下最近遇到的问题和知识点

 

1.点击按钮触发浏览器全屏显示

这个功能相当于用户按下了F11

 

1.先上【全屏】按钮和【退出全屏】按钮(默认隐藏)的html代码(无关代码省略):

            <a href="javascript:;" class="btn-full" onclick="launchFullScreen(document.documentElement)">全屏</a>
            <a href="javascript:;" class="btn-exit" onclick="exitFullscreen()" style="display: none;">退出全屏</a>

效果如下,右下角那个“全屏”:

 

2.开启全屏和退出全屏的方法js:

复制代码
    //开启全屏
    function launchFullScreen(element) {
        if (element.requestFullscreen) {
            element.requestFullscreen();
        } else if (element.mozRequestFullScreen) {
            element.mozRequestFullScreen();
        } else if (element.webkitRequestFullscreen) {
            element.webkitRequestFullscreen();
        } else if (element.msRequestFullscreen) {
            element.msRequestFullscreen();
        }
    }

    // 退出 fullscreen 
    function exitFullscreen() {
        if (document.exitFullscreen) {
            document.exitFullscreen();
        } else if (document.mozExitFullScreen) {
            document.mozExitFullScreen();
        } else if (document.webkitExitFullscreen) {
            document.webkitExitFullscreen();
        }
    }
复制代码

 

3.现在需要在全屏状态时显示“退出全屏”按钮,并隐藏“全屏”按钮。非全屏状态时反之。

通过监听“fullscreenchange”事件实现,js代码如下:

复制代码
    document.addEventListener("fullscreenchange", function (event) {
        if (document.fullscreenElement) {
            $('.btn-full').hide();
            $('.btn-exit').show();
        } else {
            $('.btn-full').show();
            $('.btn-exit').hide();
        }
    });
复制代码

 

4.相关知识:

(1)什么是document.documentElement?

  返回html dom中的root 节点 即<html>

(2)Element.requestFullscreen() MDN文档: https://developer.mozilla.org/zh-CN/docs/Web/API/Element/requestFullScreen

(3)document.exitFullscreen() MDN文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/exitFullscreen

(4)点击切换全屏模式,一段摘自MDN示例代码:

// 点击切换全屏模式
document.onclick = function (event) { 
  if (document.fullscreenElement) { 
    document.exitFullscreen() 
  } else { 
    document.documentElement.requestFullscreen() 
  } 
};

(5)这两个API都需要做兼容处理。示例代码如下:

复制代码
function toFullVideo(){
  if(videoDom.requestFullscreen){
    return videoDom.requestFullscreen();
  }else if(videoDom.webkitRequestFullScreen){
    return videoDom.webkitRequestFullScreen();
  }else if(videoDom.mozRequestFullScreen){
    return videoDom.mozRequestFullScreen();
  }else{
    return videoDom.msRequestFullscreen();
  }
}
复制代码

 

5.参考文档:

(1)MDN web docs https://developer.mozilla.org/zh-CN/docs/Web/API/Element/requestFullscreen

 

posted on   独自去流浪  阅读(1524)  评论(1编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示