toggleFullScreen.vue 634 B

12345678910111213141516171819202122232425
  1. <template>
  2. <HeaderIcon v-if="state" @click="fullScreenExit" name="i-ri-fullscreen-exit-line">
  3. </HeaderIcon>
  4. <HeaderIcon v-else @click="fullScreen" name="i-ri-fullscreen-line"></HeaderIcon>
  5. </template>
  6. <script setup>
  7. const state = ref(false)
  8. const fullScreen = () => {
  9. document.documentElement.requestFullscreen();
  10. }
  11. const fullScreenExit = () => {
  12. document.exitFullscreen();
  13. }
  14. onMounted(() => {
  15. document.addEventListener('fullscreenchange', () => {
  16. state.value = document?.fullscreenElement !== null
  17. })
  18. })
  19. onBeforeUnmount(() => {
  20. document.removeEventListener('fullscreenchange')
  21. })
  22. </script>