fullScreen.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <div>
  3. <fullscreen-outlined v-if="!fullscreen" @click="enterFullscreen"/>
  4. <fullscreen-exit-outlined v-else @click="exitFullscreen"/>
  5. </div>
  6. </template>
  7. <script setup>
  8. import { FullscreenOutlined,FullscreenExitOutlined } from '@ant-design/icons-vue';
  9. import {ref,defineProps,onMounted,watch} from 'vue'
  10. import { storeToRefs } from 'pinia'
  11. import { useBaseStore } from '@/stores/modules/base'
  12. const base = useBaseStore()
  13. let { fullscreen } = storeToRefs(base)
  14. const props = defineProps(['domId'])
  15. const enterFullscreen = () => {
  16. /* 获取(<html>)元素以全屏显示页面 */
  17. const full = document.getElementById(props.domId)
  18. if (full.RequestFullScreen) {
  19. full.RequestFullScreen()
  20. //兼容Firefox
  21. } else if (full.mozRequestFullScreen) {
  22. full.mozRequestFullScreen()
  23. //兼容Chrome, Safari and Opera等
  24. } else if (full.webkitRequestFullScreen) {
  25. full.webkitRequestFullScreen()
  26. //兼容IE/Edge
  27. } else if (full.msRequestFullscreen) {
  28. full.msRequestFullscreen()
  29. }
  30. }
  31. const exitFullscreen = ()=>{
  32. if (document.exitFullscreen) {
  33. document.exitFullscreen();
  34. } else if (document.webkitCancelFullScreen) {
  35. document.webkitCancelFullScreen();
  36. } else if (document.mozCancelFullScreen) {
  37. document.mozCancelFullScreen();
  38. } else if (document.msExitFullscreen) {
  39. document.msExitFullscreen();
  40. }
  41. }
  42. const handleFullscreenChange = ()=> {
  43. if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) {
  44. // 全屏模式激活
  45. console.log('全屏模式已激活');
  46. fullscreen.value = true
  47. } else {
  48. // 全屏模式退出
  49. fullscreen.value = false
  50. console.log('全屏模式已退出');
  51. }
  52. }
  53. onMounted(()=>{
  54. document.addEventListener('fullscreenchange', handleFullscreenChange);
  55. document.addEventListener('mozfullscreenchange', handleFullscreenChange);
  56. document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
  57. document.addEventListener('MSFullscreenChange',handleFullscreenChange)
  58. })
  59. </script>
  60. <style>
  61. </style>