优化图文页

This commit is contained in:
2026-04-28 17:11:42 +08:00
parent 674c202264
commit 040273586b
69 changed files with 3939 additions and 2302 deletions
+16 -6
View File
@@ -1,6 +1,6 @@
'use client';
"use client";
import React, { useCallback, useRef, useState } from 'react';
import React, { useCallback, useRef, useState } from "react";
type HoverVideoProps = {
videoUrl: string;
@@ -12,7 +12,12 @@ type HoverVideoProps = {
/**
* 鼠标移入才加载视频并自动播放,移出暂停并释放资源;默认显示封面。
*/
export default function HoverVideo({ videoUrl, coverUrl, className, style }: HoverVideoProps) {
export default function HoverVideo({
videoUrl,
coverUrl,
className,
style,
}: HoverVideoProps) {
const [active, setActive] = useState(false);
const videoRef = useRef<HTMLVideoElement | null>(null);
@@ -38,14 +43,19 @@ export default function HoverVideo({ videoUrl, coverUrl, className, style }: Hov
}, []);
return (
<div className={className} style={style} onMouseEnter={onEnter} onMouseLeave={onLeave}>
<div
className={className}
style={style}
onMouseEnter={onEnter}
onMouseLeave={onLeave}
>
{/* 封面始终渲染在底层 */}
<img
src={coverUrl || '/placeholder.svg'}
src={coverUrl || "/placeholder.svg"}
alt="cover"
className="absolute inset-0 w-full h-full object-cover"
draggable={false}
loading='lazy'
loading="lazy"
/>
{/* 仅在激活后渲染视频;初始不设置 src,防止提前加载 */}