feat: 添加预览效果页面并优化交互效果

refactor: 优化代码健壮性和类型安全

style: 更新字体样式和全局CSS

fix: 修复IntersectionObserver潜在空引用问题

chore: 更新依赖和ESLint配置

build: 更新构建ID和路由配置
This commit is contained in:
张翔
2026-02-24 10:24:05 +08:00
parent 64165c4499
commit fecbfd1990
239 changed files with 3403 additions and 5181 deletions
+13 -8
View File
@@ -1,6 +1,6 @@
'use client';
import { motion, useScroll, useTransform, useSpring, type MotionValue, type Variants, type HTMLMotionProps } from 'framer-motion';
import { motion, useScroll, useTransform, useSpring, type Variants, type HTMLMotionProps } from 'framer-motion';
import { useRef, type ReactNode } from 'react';
export const scrollRevealVariants: Variants = {
@@ -80,7 +80,7 @@ export function ScrollReveal({
children,
className = '',
delay = 0,
variants = scrollRevealVariants,
variants: _variants = scrollRevealVariants,
once = true,
threshold = 0.1,
...props
@@ -230,18 +230,23 @@ export function FadeOnScroll({
offset: ['start end', 'center center'],
});
const transformUp = useTransform(scrollYProgress, [0, 1], [distance, 0]);
const transformDown = useTransform(scrollYProgress, [0, 1], [-distance, 0]);
const transformLeft = useTransform(scrollYProgress, [0, 1], [distance, 0]);
const transformRight = useTransform(scrollYProgress, [0, 1], [-distance, 0]);
const getTransform = () => {
switch (direction) {
case 'up':
return useTransform(scrollYProgress, [0, 1], [distance, 0]);
return transformUp;
case 'down':
return useTransform(scrollYProgress, [0, 1], [-distance, 0]);
return transformDown;
case 'left':
return useTransform(scrollYProgress, [0, 1], [distance, 0]);
return transformLeft;
case 'right':
return useTransform(scrollYProgress, [0, 1], [-distance, 0]);
return transformRight;
default:
return useTransform(scrollYProgress, [0, 1], [distance, 0]);
return transformUp;
}
};
@@ -414,7 +419,7 @@ interface ScrollTriggeredCounterProps {
export function ScrollTriggeredCounter({
end,
duration = 2,
duration: _duration = 2,
prefix = '',
suffix = '',
className = '',