javascript - 图像/DIV 元素切换全屏

标签 javascript jquery html

下面的代码是一个工作示例,当您单击图像时它会全屏打开网页浏览器,但是我不知道如何在再次单击图像时让 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);
  }   
})();

最佳答案

一个简单的解决方案是在您请求全屏和退出全屏调用时进行跟踪。并根据这个值运行相应的代码。为此,您不需要两个单独的点击监听器。另一个if else statement .

<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>

还没有测试过,但应该可以。更好的方法是首先检测全屏状态并监听变化 as described here .而不是试图自己跟踪状态。

希望对您有所帮助!祝你好运!

关于javascript - 图像/DIV 元素切换全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28011956/

相关文章:

javascript - 从对象创建逗号分隔的字符串

javascript - 即使在 AJAX 加载时也基于复选框状态隐藏表 tr

javascript - 如何在 Adob​​e Air Extension for Dreamweaver 3.3 下的 Javascript 中获取鼠标坐标?

html - CSS:立即加载 CSS

javascript - 简单的 Javascript 继承示例

javascript - 在 firefox 中提交 jQuery 表单

javascript - MVC 3 $.post 有效但 $.ajax 无效

javascript - 如何从类的所有实例中删除所有数据属性

jquery - 如何将最长的 li 元素的宽度设置为属于单父 ul 的所有 li 元素的宽度

html - 用于 wordpress 的嵌入式播放器和图像内容