We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 07aea61 commit ee12a6fCopy full SHA for ee12a6f
1 file changed
src/components/hooks/useAutoScale/index.tsx
@@ -0,0 +1,27 @@
1
+'use client'
2
+
3
+import { useEffect, useState } from 'react'
4
5
+// 自定义 Hook:自动计算缩放比例
6
+export function useAutoScale(designWidth = 1920, designHeight = 1080) {
7
+ const [scale, setScale] = useState(1)
8
9
+ useEffect(() => {
10
+ const handleResize = () => {
11
+ const width = window.innerWidth
12
+ const height = window.innerHeight
13
14
+ const scaleX = width / designWidth
15
+ const scaleY = height / designHeight
16
+ const newScale = Math.min(scaleX, scaleY)
17
18
+ setScale(newScale)
19
+ }
20
21
+ handleResize()
22
+ window.addEventListener('resize', handleResize)
23
+ return () => window.removeEventListener('resize', handleResize)
24
+ }, [designWidth, designHeight])
25
26
+ return scale
27
+}
0 commit comments