---
# System prepended metadata

title: JS實現部分區域全螢幕即退出
tags: [' Frontend', Javascript]

---

---
tags: Javascript, Frontend
---
# JS實現部分區域全螢幕即退出

## 1. 首先找出要全螢幕區域

    `var elem = document.getElementById("game");`

## 2. 建立全螢幕function
```javascript=
// 局部全螢幕
function requestFullScreen(element) {
    var requestMethod =
        element.requestFullScreen ||
        element.webkitRequestFullScreen ||
        element.mozRequestFullScreen ||
        element.msRequestFullScreen;
    if (requestMethod) {
        requestMethod.call(element);
    } else if (typeof window.ActiveXObject !== "undefined") {
        var wscript = new ActiveXObject("WScript.Shell");
        if (wscript !== null) {
            wscript.SendKeys("{F11}");
        }
    }
}
```

## 3. 將選到element區塊全螢幕

    `requestFullScreen(elem);`
    
## 4. 退出全螢幕函數

```javascript=
function exitFullscreen() {
    if (document.exitFullscreen) {
        document.exitFullscreen();
    } else if (document.msExitFullscreen) {
        document.msExitFullscreen();
    } else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
    } else if (document.webkitExitFullscreen) {
        document.webkitExitFullscreen();
    }
}
```

## 5. 監聽按鈕事件

我是設置一個是否為全螢幕的變數去跑，這樣就只需要一個按鈕就可以解決
```javascript=
var btn = document.getElementById("btn"); // 尋找button id=btn的按鈕
btn.onclick = function () { // 監聽btn按鈕click事件
　　var elem = document.getElementById("content"); // 要全螢幕的element id
　　requestFullScreen(elem); // 全螢幕
};
 

var close = document.getElementById("close"); // 尋找button id=close的按鈕
close.onclick = function () { // 監聽close按鈕click事件
    exitFullscreen(); // 關閉全螢幕
};    


---

// 以下由一個button完成
var fullscreen = false;
var btn = document.getElementById("btn");
var elem = document.getElementById("content");
btn.onclick = function () {
    if(fullscreen){
        exitFullscreen();
        fullscreen = false;
    }else{
　　    requestFullScreen(elem);
        fullscreen = true;
    }
};
```