برنامه نویسی
راهنمای ابزار ویدیوی متحرک با استفاده از تایپ اسکریپت و حرکت فریم

Video Tooltip یک مؤلفه متحرک است که وقتی کاربران روی آواتار قرار می گیرند فعال می شود.
این مؤلفه یک ویدیوی کوتاه از شخص در حال معرفی خود یا ارائه زمینه اضافی را نشان می دهد و یک لمس شخصی و تعاملی را اضافه می کند.
این به ویژه برای ایجاد تجربیات کاربر به یاد ماندنی، ارائه بینش سریع در مورد اعضای تیم، سخنرانان، یا تأثیرگذاران بدون نیاز به کلیک اضافی مفید است.
نسخه ی نمایشی
کد منبع
video-tooltip.tsx
import { useState, useCallback, useMemo } from "react";
import { motion, useTransform, AnimatePresence, useMotionValue, useSpring } from "framer-motion";
import { cn } from "@/lib/utils";
interface TooltipItem {
id: number;
name: string;
designation: string;
image: string;
video: string;
text: string;
}
interface VideoTooltipProps {
items: TooltipItem[];
className?: string;
}
export const VideoTooltip = ({ items, className = "" }: VideoTooltipProps) => {
const [hoveredIndex, setHoveredIndex] = useState(null);
const [showText, setShowText] = useState(false);
const springConfig = useMemo(
() => ({
stiffness: 100,
damping: 5,
}),
[]
);
// Motion setup
const x = useMotionValue(0);
const translateX = useSpring(useTransform(x, [-100, 100], [-50, 50]), springConfig);
// Optimize event handler with useCallback
const handleMouseMove = useCallback(
(event: React.MouseEvent) => {
const halfWidth = event.currentTarget.offsetWidth / 2;
x.set(event.nativeEvent.offsetX - halfWidth);
},
[x]
);
return (
{items.map((item) => (
setHoveredIndex(item.id)} onMouseLeave={() => setHoveredIndex(null)}>
{hoveredIndex === item.id && (
{item.text}
)}
))}
);
};