toggleFullScreen.vue 878 B

1234567891011121314151617181920212223242526272829303132333435
  1. <!--
  2. * @Author: NMTuan
  3. * @Email: NMTuan@qq.com
  4. * @Date: 2024-02-20 20:37:15
  5. * @LastEditTime: 2024-02-22 12:32:41
  6. * @LastEditors: NMTuan
  7. * @Description:
  8. * @FilePath: \timeNow\components\header\toggleFullScreen.vue
  9. -->
  10. <template>
  11. <HeaderIcon v-if="state" @click="fullScreenExit" name="i-ri-fullscreen-exit-line">
  12. </HeaderIcon>
  13. <HeaderIcon v-else @click="fullScreen" name="i-ri-fullscreen-line"></HeaderIcon>
  14. </template>
  15. <script setup>
  16. const state = ref(false)
  17. let evt
  18. const fullScreen = () => {
  19. document.documentElement.requestFullscreen();
  20. }
  21. const fullScreenExit = () => {
  22. document.exitFullscreen();
  23. }
  24. onMounted(() => {
  25. evt = document.addEventListener('fullscreenchange', () => {
  26. state.value = document?.fullscreenElement !== null
  27. })
  28. })
  29. onBeforeUnmount(() => {
  30. document.removeEventListener('fullscreenchange', evt)
  31. })
  32. </script>