zoukankan      html  css  js  c++  java
  • iframe全屏兼容(按钮在iframe里)

    全屏思路

    在子页面iframe.html里点击“全屏显示” 按钮,我是根据按钮的文本来判断调用父页面main.html定义的哪个方法。

    在父页面的全屏事件,首先是调用API全屏方法,比如requestFullscreen() 用于异步请求使元素进入全屏模式,其次主要是让除了iframe标签,其余标签进行隐藏display:none;让iframe标签固定定位,高宽%即可。

    在父元素的退屏事件,首先是调用API退屏方法,其次主要是让除了iframe标签,其余标签进行隐藏display:"" 为空,让iframe标签样式还原(不一定按照我的来)。

     浏览器兼容:

    供应商前缀
    1、webkit (Chrome, Safari, newer versions of Opera, almost all iOS browsers (including Firefox for iOS); basically, any WebKit based browser)
    2、moz (Firefox)
    3、o (Old, pre-WebKit, versions of Opera)
    3、ms (Internet Explorer and Microsoft Edge)
    更多:https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix

    main.html页面

    html关键代码:

    <body>
            <!--横向菜单开始-->
            <div class="grid_12">
               ...
            </div>
            <!--横向菜单结束-->
            <div class="clear"></div>
            <!--侧边菜单开始-->
            <div class="grid_2">
               ...
            </div>
            <!--侧边菜单结束-->
            <!--内容开始-->
            <div style=" 82%;float: left;">
                <iframe id="iframe" name="mainFrame" src="" width="100%" scrolling="yes" frameborder="0"></iframe>
            </div>
            <!--内容结束-->
        </div>
        <div class="clear"></div>
        <div id="site_info"><p>Copyright...</p></div>
    </body>
    /*全屏iframe*/
            function quan() {
                /*全屏iframe兼容*/
                var docElm = document.documentElement;
                if (docElm.requestFullscreen) {
                    docElm.requestFullscreen();
                } else if (docElm.mozRequestFullScreen) {
                    docElm.mozRequestFullScreen();
                } else if (docElm.msRequestFullscreen) {
                    docElm.msRequestFullscreen();
                } else if (docElm.oRequestFullscreen) {
                    docElm.oRequestFullscreen();
                } else if (docElm.webkitRequestFullScreen) {
                    docElm.webkitRequestFullScreen();
                }
                $(".grid_12").css("display", "none");
                $("#site_info").css("display", "none");
                $("#full-screen-btn").css("display", "none");
                $("iframe").css("height", "100%");
                $("iframe").css("width", "100%");
                $("iframe").css("position", 'fixed');
                $("iframe").css("left", "0px");
                $("iframe").css("top", "0px");
    
            }
            /*退出全屏iframe*/
            function exitQ() {
                var mainheight = $('.sidemenu').height();  获取侧边菜单高度
                $(".grid_12").css("display", "");
                $("#site_info").css("display", "");
                $("#full-screen-btn").css("display", "");
                /*退屏iframe兼容*/
                if (document.exitFullscreen) {
                    document.exitFullscreen();
                } else if (document.msExitFullscreen) {
                    document.msExitFullscreen();
                } else if (document.mozCancelFullScreen) {
                    document.mozCancelFullScreen();
                } else if (document.oRequestFullscreen) {
                    document.oCancelFullScreen();
                } else if (document.webkitCancelFullScreen) {
                    document.webkitCancelFullScreen();
                }
                $("iframe").css("height",mainheight + 'px');    高度是侧边菜单高度,保持一致
           $(
    "iframe").css("width", "");
           $(
    "iframe").css("position", "");
            $(
    "iframe").css("left", "");
            $(
    "iframe").css("top", "");
    }

    iframe.html页面

    html关键代码:

     <div id="full-screen-btn">全屏显示</div>        //按钮
    <div>iframe子页面的内容</div>

    js部分关键代码:

             /*全屏显示*/
                $("#full-screen-btn").click(function () {
                    if ($("#full-screen-btn").text() == "全屏显示") {
                        parent.quan(); 
                        $("#full-screen-btn").text("退出全屏");
                    } else {
                        parent.exitQ();
                        $("#full-screen-btn").text("全屏显示");
                    }
                });

     其中 parent.quan();  是原生js 子页面调用父页面的 quan() 方法

  • 相关阅读:
    机器学习数学笔记|Taylor展开式与拟牛顿
    机器学习数学笔记|微积分梯度jensen不等式
    [DeeplearningAI笔记]第三章2.9-2.10端到端学习
    [DeeplearningAI笔记]第三章2.7-2.8多任务学习/迁移学习
    [DeeplearningAI笔记]第三章2.4-2.6不匹配的训练和开发/测试数据
    [DeeplearningAI笔记]第三章2.1-2.3误差分析
    [DeeplearningAI笔记]第三章1.8-1.12可避免误差与模型改善
    [DeeplearningAI笔记]第三章1.4-1.7开发集测试集划分与满足与优化指标
    [DeeplearningAI笔记]第三章1.1-1.3查准率/查全率/F1分数
    [DeeplearningAI笔记]第二章3.8-3.9分类与softmax
  • 原文地址:https://www.cnblogs.com/feng-xl/p/9132328.html
Copyright © 2011-2022 走看看