• 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;
        }
  • 相关阅读:
    java学习——abstract 和 final
    apache配置访问目录的默认页面
    Beyond Compare 4
    idea常用插件
    linux关闭防火墙
    本地项目上传到gitlab
    删除数据库中多余的数据
    git上传本地项目到gitlab
    谷歌浏览器插件
    域名
  • 原文地址:https://www.cnblogs.com/yiven/p/7885528.html
Copyright © 2020-2023  润新知