• js 全屏事件 参考三


    一、经过一些自测

    chrome,html中的video元素点击自带的全屏按钮,

    触发不了mdn所说的 fullscreenchange事件,准确来说是触发了事件,但是类型字符串需要加上前缀 webkitfullscreenchange 

    // 触发不了  fullscreenchange 
    document.getElementById('videoEle').onfullscreenchange = function ( event ) { console.log("FULL SCREEN CHANGE",event,document.fullscreenElement) };

    // 绑定
    webkitfullscreenchange 可以触发
    使用 document 或者 document.getElementById('videoEle') 绑定都可以
    document.getElementById('videoEle').addEventListener('webkitfullscreenchange', (event) => {

            if (document.fullscreenElement) {
               console.log(`进入全屏`);
            } else {
               console.log('离开全屏');
            }
      });

    二、手动执行浏览器的全屏方法则video元素可以触发 fullscreenchange事件

    function btnClick(e){
    
         console.log('btnClick event is',event)
         let element = e.target
         element = document.getElementById('videoEle')
         //element = document.getElementById('test')  div元素或者button元素或其他html元素
        // element  = document.documentElement      document文档元素
         if(element.requestFullscreen){
             element.requestFullscreen()
         }else if(element.mozRequestFullScreen){
             element.mozRequestFullScreen()
         }else if (element.msRequestFullscreen) {
            element.msRequestFullscreen()
         } else if (element.webkitRequestFullscreen) {
            element.webkitRequestFullScreen()
    
         }
    }

    顺便补充一下,取消全屏的方法

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

    三、触发事件后判断是否全屏,除了使用   document.fullscreenElement

            还可以使用    document.fullScreen 

    $(document).bind('webkitfullscreenchange mozfullscreenchange fullscreenchange',function(e){
        console.log('全屏事件event is',e)
    
    var isFullScreen = document.fullScreen || 
                       document.mozFullScreen || 
                       document.webkitIsFullScreen ||
                       document.fullscreenElement;
        if(isFullScreen){
          console.log('Go to Full Screen mode');
        }else{
           console.log('Exit Full Screen mode');
        }
    });

    四、

    mdn参考链接:

     https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenElement

    博客参考链接 

    fullscreenchange全屏事件监听,兼容chrome、safari

    https://blog.csdn.net/zqian1994/article/details/105814522 

    Fullscreen API 全屏显示网页

    https://blog.csdn.net/c14210220635c/article/details/71601243

      ['fullscreenchange','webkitfullscreenchange','mozfullscreenchange'].forEach((item,index) => {
              window.addEventListener(item, () => this.fullscreenchange());
            })
    ————————————————
    
        //  监听全屏事件触发
          fullscreenchange() {
            let isFullScreen = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen;
            if (isFullScreen) {
              //  进入全屏
            } else {
              //  退出全屏
              
            }
          },
    ————————————————
    版权声明:本文为CSDN博主「zqian1994」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/zqian1994/article/details/105814522

    五、如某些博客的总结

    https://www.cnblogs.com/lfqcode/p/6164001.html

    Fullscreen 属性与事件

    一个坏消息,到目前为止,全屏事件和方法依然是带前缀的,好消息就是很快主流浏览器就会都支持。

    1.document.fullscreenElement:  当前处于全屏状态的元素 element.
    2.document.fullscreenEnabled:  标记 fullscreen 当前是否可用.

    当进入/退出 全屏模式时,会触发 fullscreenchange 事件:

    var fullscreenElement =
    document.fullscreenEnabled
    || document.mozFullscreenElement
    || document.webkitFullscreenElement;
    var fullscreenEnabled =
    document.fullscreenEnabled
    || document.mozFullscreenEnabled
    || document.webkitFullscreenEnabled;

    Fullscreen CSS

    浏览器提供了一些有用的 fullscreen CSS 控制规则:

    /* html */
    :-webkit-full-screen {
    /* properties */
    }
    :-moz-fullscreen {
    /* properties */
    }


    :fullscreen {
    /* properties */
    }


    /* deeper elements */
    :-webkit-full-screen video {
    100%;
    height: 100%;
    }


    /* styling the backdrop */
    ::backdrop {
    /* properties */
    }

  • 相关阅读:
    C语言基础---字符指针变量和字符数组的区别
    C语言基础---编写C语言代码过程中易忽略的点
    C语言简介---通过指针引用多维数组
    C语言基础---特殊的变量类型(结构体、枚举、共用体)
    C语言基础---指针简述
    C语言基础---C语言中的变量与内存空间的关系
    嵌入式开发中常用到的C语言库函数
    SVN使用---简介
    视频编解码相关基础知识(二)---H.264简介
    MybatisPlus MetaObjectHandler 配置
  • 原文地址:https://www.cnblogs.com/dhjy123/p/15827041.html
Copyright © 2020-2023  润新知