import { onMounted, onUnmounted, ref } from 'vue' function useScreenOrientation() { const portrait = window.matchMedia('(orientation: portrait)') const orientation = ref(portrait.matches ? 'portrait' : 'landscape') function orientationListener(e: MediaQueryListEvent) { orientation.value = e.matches ? 'portrait' : 'landscape' } onMounted(() => { portrait.addEventListener('change', orientationListener) }) onUnmounted(() => { portrait.removeEventListener('change', orientationListener) }) return orientation } export { useScreenOrientation, useScreenOrientation as default, }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter