效果预览
原理解析
- 使用 vueUse 里的 useFullscreen() 实现
代码实现
技术方案
vue3 + vite + UnoCSS + vueUse
组件封装
src/components/FullScreen.vue
<template>
<component
:is="tag"
@click="toggle"
:class="[
!isFullscreen ? 'i-ep:full-screen' : 'i-ri:fullscreen-exit-fill',
'cursor-pointer',
iconClass
]"
></component>
</template>
<script setup lang="ts">
const { isFullscreen, toggle } = useFullscreen()
defineProps({
tag: {
type: String,
default: 'i'
},
iconClass: {
type: String,
default: 'text-xl'
}
})
</script>
页面使用
<FullScreen />