برنامه نویسی

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

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}

)}
{item.name}
))}
); };
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا