feat: 食品添加剂课程业务开发(接待/主场景/取证/记录/信函学习页面)
This commit is contained in:
1 parent
ad37dfeb24
commit
bf0c194d16
192 files changed
+4675
-624
No files matched your search
@@ -0,0 +1,27 @@
|
||||
import { useGSAP } from "@gsap/react";
|
||||
import { gsap } from "gsap";
|
||||
import { useEffect, useState } from "react";
|
||||
|
||||
gsap.registerPlugin(useGSAP);
|
||||
|
||||
// 项目统一缓动,对齐现有 CSS cubic-bezier(0.16, 1, 0.3, 1)
|
||||
export const EASE_OUT = "power3.out";
|
||||
export const EASE_IN_OUT = "power2.inOut";
|
||||
|
||||
export { gsap, useGSAP };
|
||||
|
||||
// 响应 prefers-reduced-motion,供动画降级
|
||||
export function useReducedMotion(): boolean {
|
||||
const [reduced, setReduced] = useState(
|
||||
() => window.matchMedia("(prefers-reduced-motion: reduce)").matches,
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
const mql = window.matchMedia("(prefers-reduced-motion: reduce)");
|
||||
const onChange = () => setReduced(mql.matches);
|
||||
mql.addEventListener("change", onChange);
|
||||
return () => mql.removeEventListener("change", onChange);
|
||||
}, []);
|
||||
|
||||
return reduced;
|
||||
}
|
||||
Reference in new issue
Block a user