1. 程式人生 > 其它 >js 全屏事件 參考三

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 {
width: 100%;
height: 100%;
}


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