js:浏览器全屏与退出全屏功能

一、JS文件

// 进入全屏
export function enterFullScreen(element) {
  try {
    if (element.requestFullscreen) {
      element.requestFullscreen();
    } else if (element.mozRequestFullScreen) {
      element.mozRequestFullScreen();
    } else if (element.webkitRequestFullscreen) {
      element.webkitRequestFullscreen();
    } else if (element.msRequestFullscreen) {
      element.msRequestFullscreen();
    }
  } catch (error) {
    console.error("无法全屏:", error);
  }
}

// 退出全屏
export function exitFullScreen() {
  try {
    if (document.exitFullscreen) {
      document.exitFullscreen();
    } else if (document.mozCancelFullScreen) {
      document.mozCancelFullScreen();
    } else if (document.webkitExitFullscreen) {
      document.webkitExitFullscreen();
    } else if (document.msExitFullscreen) {
      document.msExitFullscreen();
    }
  } catch (error) {
    console.error("Failed to exit full screen:", error);
  }
}

// 获取当前处于全屏的元素
export function getFullScreenElement() {
  return (
    document.fullscreenElement ||
    document.mozFullScreenElement ||
    document.webkitFullscreenElement ||
    document.msFullscreenElement
  );
}

// 判断当前是否处于全屏状态
export function isFullScreen() {
  return (
    !!document.fullscreenElement ||
    document.mozFullScreen ||
    document.webkitIsFullScreen ||
    document.msFullscreenElement
  );
}

// 切换全屏状态
export function toggleFullScreen(targetElement) {
  if (isFullScreen()) {
    exitFullScreen();
  } else {
    enterFullScreen(targetElement);
  }
}

二、TS声明(如果使用TS)

export function enterFullScreen(element: Element): void;
export function exitFullScreen(): void;
export function getFullScreenElement(): Element | null;
export function isFullScreen(): boolean;
export function toggleFullScreen(targetElement: Element): void;

三、使用(例如在vue组件中)

<template>
  <div class="quanpingBox" @click="toggleFullScreen(ele)">
    <svg
      t="1715831699074"
      class="icon"
      viewBox="0 0 1024 1024"
      version="1.1"
      xmlns="http://www.w3.org/2000/svg"
      p-id="2413"
      width="40"
      height="40"
    >
      <path
        d="M896 128v288c0 19.2-12.8 32-32 32s-32-12.8-32-32V236.8L633.6 441.6c-6.4 6.4-19.2 6.4-25.6 6.4s-19.2 0-25.6-6.4c-6.4-12.8-6.4-38.4 0-51.2L787.2 192H608c-19.2 0-32-12.8-32-32s12.8-32 32-32H896zM441.6 582.4c-12.8-6.4-38.4-12.8-51.2 0L192 787.2V608c0-19.2-12.8-32-32-32s-32 12.8-32 32V896h288c19.2 0 32-12.8 32-32s-12.8-32-32-32H236.8l204.8-198.4c6.4-12.8 6.4-38.4 0-51.2zM448 160c0-19.2-12.8-32-32-32H128v288c0 19.2 12.8 32 32 32s32-12.8 32-32V236.8l198.4 198.4c6.4 12.8 19.2 12.8 25.6 12.8s19.2 0 25.6-6.4c6.4-12.8 6.4-38.4 0-51.2L236.8 192h179.2c19.2 0 32-12.8 32-32zM864 576c-19.2 0-32 12.8-32 32v179.2L633.6 588.8c-12.8-12.8-38.4-12.8-51.2 0-6.4 12.8-6.4 32 0 44.8l198.4 198.4H608c-19.2 0-32 12.8-32 32s12.8 32 32 32H896V608c0-19.2-12.8-32-32-32z"
        fill="#ffffff"
        p-id="2414"
      ></path>
    </svg>
  </div>
</template>
<script setup lang="ts">
import { ref } from "vue";
import { toggleFullScreen } from "../../../scripts/full-screen";

const ele = ref(document.documentElement);
</script>

<style scoped lang="scss">
.quanpingBox {
  width: 40px;
  height: 40px;
  background-color: #000000a9;
  cursor: pointer;
}
</style>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值