图像/DIV 元素切换全屏

Image/DIV Element Toggle Fullscreen

本文关键字:元素 DIV 图像      更新时间:2023-09-26

下面的代码是一个工作示例,当您单击图像时,它会全屏打开网页浏览器,但是我不知道如何使javascript在再次单击图像时切换全屏模式。

因此,脚本需要在第一次单击图像时打开全屏模式

,然后在第二次单击同一图像时退出全屏模式。

.HTML:

    <h1>Click image to toogle fullscreen mode</h1>
    <img id="logo" src="http://i.imgur.com/lPZh57Y.png" alt="logo" />

JavaScript:

(function () {
    var viewFullScreen = document.getElementById("logo");
    if (viewFullScreen) {
       viewFullScreen.addEventListener("click", function () {
           var docElm = document.documentElement;
           if (docElm.requestFullscreen) {
               docElm.requestFullscreen();
           }
           else if (docElm.msRequestFullscreen) {
               docElm.msRequestFullscreen();
           }
           else if (docElm.mozRequestFullScreen) {
               docElm.mozRequestFullScreen();
           }
           else if (docElm.webkitRequestFullScreen) {
               docElm.webkitRequestFullScreen();
           }
       }, false);
   }
  var cancelFullScreen = document.getElementById("logoCONFLICT");
  if (cancelFullScreen) {
     cancelFullScreen.addEventListener("click", function () {
        if (document.exitFullscreen) {
            document.exitFullscreen();
        }
        else if (document.msExitFullscreen) {
            document.msExitFullscreen();
        }
        else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        }
        else if (document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen();
        }
     }, false);
  }   
})();
一个简单的

解决方案是跟踪何时请求全屏并退出全屏通话。并根据此值运行相应的代码。为此,您不需要两个单独的单击侦听器。只是另一个如果不是的话。

<script>
(function () {
    var viewFullScreen = document.getElementById("logo");
    var isFullScreen;
    if(viewFullScreen) {
        viewFullScreen.addEventListener("click", function () {
                    if(!isFullScreen) {
                        var docElm = document.documentElement;
                        if(docElm.requestFullscreen) docElm.requestFullscreen();
                        else if(docElm.msRequestFullscreen) docElm.msRequestFullscreen();
                        else if(docElm.mozRequestFullScreen) docElm.mozRequestFullScreen();
                        else if(docElm.webkitRequestFullScreen) docElm.webkitRequestFullScreen();
                        isFullScreen = true;
                    } else {
                        if(document.exitFullscreen) document.exitFullscreen();
                        else if(document.msExitFullscreen) document.msExitFullscreen();
                        else if(document.mozCancelFullScreen) document.mozCancelFullScreen();
                        else if(document.webkitCancelFullScreen) document.webkitCancelFullScreen();
                        isFullScreen = false;
                    }
                }, false);
    }
})();
</script>

尚未测试过,但应该可以工作。更好的方法是最初检测全屏状态并侦听此处所述的更改。而不是尝试自己跟踪状态。

希望这有帮助!祝你好运!