zoukankan      html  css  js  c++  java
  • JS控制全屏,监听退出全屏事件

    实现方案

    //进入全屏
        function requestFullScreen(de) {
            if(de.requestFullscreen){
                //W3C
                de.requestFullscreen();
            }else if (de.mozRequestFullScreen){
                //FIREFOX
                de.mozRequestFullScreen();
            }else if (de.webkitRequestFullScreen){
                //CHROME
                de.webkitRequestFullScreen();
            }else if (de.msRequestFullscreen){
                //MSIE
                de.msRequestFullscreen();
            }else if(element.oRequestFullscreen){
                element.oRequestFullscreen();
            }else{
                var docHtml = document.documentElement;
                var docBody = document.body;
                var videobox = document.getElementById('playerBox');
                var cssText = '100%;height:100%;overflow:hidden;';
                docHtml.style.cssText = cssText;
                docBody.style.cssText = cssText;
                videobox.style.cssText = cssText+';'+'margin:0px;padding:0px;';
                document.IsFullScreen = true;
            }
        }
        //退出全屏
        function exitFullscreen(de) {
            if (de.exitFullscreen) {
                //W3C
                de.exitFullscreen();
            }else if(de.mozCancelFullScreen){
                //FIREFOX
                de.mozCancelFullScreen();
            }else if(de.webkitCancelFullScreen){
                //CHROME
                de.webkitCancelFullScreen();
            }else if(de.msExitFullscreen){
                //MSIE
                de.msExitFullscreen();
            }else if(de.oRequestFullscreen){
                de.oCancelFullScreen();
            }else{
                var docHtml = document.documentElement;
                var docBody = document.body;
                var videobox = document.getElementById('playerBox');
                docHtml.style.cssText = "";
                docBody.style.cssText = "";
                videobox.style.cssText = "";
                document.IsFullScreen = false;
            }
        }

    上面的方案,一堆if...else...,看起来实在不爽,下面是根据大神方案优化后的方案

    //全屏功能
        document.getElementById("ck_buts").onclick = function() {
            var elem = document.getElementById("dashboard_id");
            elem.style.width = "100%";
            elem.style.height = "100%";
            elem.style.overflowY = "scroll";
            requestFullScreen(elem); // 某个页面元素
            //requestFullScreen(document.documentElement); // 整个网页
        };
    
        function requestFullScreen(element) {
                // 判断各种浏览器,找到正确的方法
                var requestMethod = element.requestFullScreen || //W3C
                    element.webkitRequestFullScreen || //FireFox
                    element.mozRequestFullScreen || //Chrome等
                    element.msRequestFullScreen; //IE11
                if (requestMethod) {
                    requestMethod.call(element);
                } else if (typeof window.ActiveXObject !== "undefined") { //for Internet Explorer
                    var wscript = new ActiveXObject("WScript.Shell");
                    if (wscript !== null) {
                        wscript.SendKeys("{F11}");
                    }
                }
            }
            //退出全屏 判断浏览器种类
    
        function exitFull() {
            // 判断各种浏览器,找到正确的方法
            var exitMethod = document.exitFullscreen || //W3C
                document.mozCancelFullScreen || //FireFox
                document.webkitExitFullscreen || //Chrome等
                document.webkitExitFullscreen; //IE11
            if (exitMethod) {
                exitMethod.call(document);
            } else if (typeof window.ActiveXObject !== "undefined") { //for Internet Explorer
                var wscript = new ActiveXObject("WScript.Shell");
                if (wscript !== null) {
                    wscript.SendKeys("{F11}");
                }
            }
    
        }

     监听退出全屏事件

    //监听退出全屏事件
        window.onresize = function() {
            if (!checkFull()) {
                //要执行的动作
                $("#dashboard_id").removeClass('expand').addClass('contract');//这里捡个懒,直接用JQ来改className
            }
        }
        function checkFull() {
            var isFull = document.fullscreenEnabled || window.fullScreen || document.webkitIsFullScreen || document.msFullscreenEnabled;
            //to fix : false || undefined == undefined
            if (isFull === undefined) {isFull = false;}
            return isFull;
        }
  • 相关阅读:
    docker4dotnet #1 – 前世今生 & 世界你好
    DockerCon 2016 – 微软带来了什么?
    TFS 2015 敏捷开发实践 – 看板的使用
    几款Git GUI客户端工具
    (视频)Erich Gamma 与 Visual Studio Online 的一点野史
    GitHub + VSTS 开源代码双向同步
    UDAD 用户故事驱动的敏捷开发 – 演讲实录
    用户故事驱动的敏捷开发 – 2. 创建backlog
    算法 之 简单选择排序法
    算法 之 冒泡排序法
  • 原文地址:https://www.cnblogs.com/yiven/p/7885528.html
Copyright © 2011-2022 走看看