本文作者:心月

双击图片/视频全屏(双击退出全屏)功能

心月IT博客 2019-09-29
双击图片/视频全屏(双击退出全屏)功能摘要:很多时候为了页面的整体布局,图片或者视频在页面中安排的位置都不会太大,但用户在浏览的时候又想全屏查看视频 图片,互联网上的很多应用的全屏功能都是通过双击来实现的,这也导致了用户在浏览网页遇到图片就会习惯性的双击放大查看。

        很多时候为了页面的整体布局,图片或者视频在页面中安排的位置都不会太大,但用户在浏览的时候又想全屏查看视频/图片,互联网上的很多应用的全屏功能都是通过双击来实现的,这也导致了用户在浏览网页遇到图片就会习惯性的双击放大查看。

        今天就来跟大家一起分享下如何实现双击全屏显示功能。

实现全屏功能并不麻烦,两个api就能搞定,全屏:element.requestFullscreen();退出全屏:document.exitFullscreen();

<!DOCTYPE html>
<html>

<head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
</head>
<style>
  .full {
        text-align: center;
        cursor: pointer;
    }

    .full img {
        vertical-align: middle;
    }

    .full:hover img {
        box-shadow: 2px 2px 4px rgba(0, 0, 0, .45);
    }

    .full:after {
        /* 图片垂直居中显示 */
        display: inline-block;
        content: '';
        width: 0;
        height: 100%;
        vertical-align: middle;
    }

    :-webkit-full-screen img {
        height: 60%;
    }

    :-moz-full-screen img {
        height: 60%;
    }

    :-ms-full-screen img {
        height: 60%;
    }

    :-o-full-screen img {
        height: 60%;
    }

    :full-screen img {
        height: 60%;
    }
</style>

<body>

  <div class="full">
    <div class="full" title="点击全屏浏览">
      <img class="img" src="3.jpg" />
      <img class="img" src="4.jpg" />
      <img class="img" src="5.jpg" />
    </div>
  </div>
</body>

<script type="text/javascript">
  (function () {
    var runPrefixMethod = function (element, method) {
      var usablePrefixMethod;
      ["webkit", "moz", "ms", "o", ""].forEach(function (prefix) {
        if (usablePrefixMethod) return;
        if (prefix === "") {
          // 无前缀,方法首字母小写
          method = method.slice(0, 1).toLowerCase() + method.slice(1);

        }

        var typePrefixMethod = typeof element[prefix + method];

        if (typePrefixMethod + "" !== "undefined") {
          if (typePrefixMethod === "function") {
            usablePrefixMethod = element[prefix + method]();
          } else {
            usablePrefixMethod = element[prefix + method];
          }
        }
      });

      return usablePrefixMethod;
    };

    if (typeof window.screenX === "number") {
      var eleFull = document.querySelectorAll(".img"); //选中所有的图片
      for (var i = 0; i < eleFull.length; i++){
      	eleFull[i].addEventListener("dblclick", function () { 
          if (runPrefixMethod(document, "FullScreen") || runPrefixMethod(document, "IsFullScreen")) {
            runPrefixMethod(document, "CancelFullScreen");
            this.title = this.title.replace("退出", "");
          } else if (runPrefixMethod(this, "RequestFullScreen")) {
            this.title = this.title.replace("点击", "点击退出");
          }
        });
      }
        
    } else {
      alert("爷,现在都什么时代了,你还在用这么土的浏览器~~");
    }
  })();
</script>

</html>

双击前的图片列表:

图片列表

双击后全屏显示效果:

全屏显示效果

文章版权及转载声明:

本文由 心月IT技术博客 博主整理于 2019-09-29
若转载请注明原文及出处:https://www.xinyueseo.com/webfe/337.html

分享到:
赞(
发表评论
快捷输入:

验证码

    评论列表 (有 0 条评论,人围观)参与讨论