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
+6 -6
View File
@@ -16,11 +16,11 @@ export function useScrollReveal({
useEffect(() => {
const element = ref.current;
if (!element) return;
if (!element) {return;}
const observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) {
if (entry?.isIntersecting) {
setIsVisible(true);
if (triggerOnce) {
observer.unobserve(element);
@@ -44,7 +44,7 @@ interface UseScrollProgressOptions {
threshold?: number;
}
export function useScrollProgress({ threshold = 0 }: UseScrollProgressOptions = {}) {
export function useScrollProgress({ threshold: _threshold = 0 }: UseScrollProgressOptions = {}) {
const [progress, setProgress] = useState(0);
useEffect(() => {
@@ -74,13 +74,13 @@ export function useParallax({ speed = 0.5 }: UseParallaxOptions = {}) {
useEffect(() => {
const handleScroll = () => {
if (!ref.current) return;
if (!ref.current) {return;}
const rect = ref.current.getBoundingClientRect();
const scrolled = window.pageYOffset;
const elementTop = rect.top + scrolled;
const parallaxOffset = (scrolled - elementTop) * speed;
setOffset(parallaxOffset);
};