SVG Animation Examples Gallery
Browse featured svg animation examples
Playback pauses when you leave
'use client';
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
// 颜色定义
const COLORS = {
bg: '#0f172a',
primary: '#38bdf8', // 天蓝 - 电流/科技
accent: '#facc15', // 黄色 - 切割/高能
danger: '#f43f5e', // 红色 - 凝血/热量
text: '#e2e8f0',
grid: '#1e293b',
tissue: '#fda4af', // 组织粉色
tissueDark: '#be123c', // 烧焦色
pad: '#94a3b8', // 负极板
};
// 粒子系统 helper
const createParticle = (x: number, y: number, type: 'spark' | 'smoke') =>
手术室高频电刀工作原理
Playback pauses when you leave
import React, { useState, useEffect, useRef, useMemo, useCallback } from 'react';
// --- 配置常量 ---
const VIEW_WIDTH = 360;
const VIEW_HEIGHT = 640;
const WHEEL_CENTER_X = VIEW_WIDTH / 2;
const WHEEL_CENTER_Y = VIEW_HEIGHT * 0.4; // 稍微上移一点点以保证整体平衡
const WHEEL_RADIUS = 130;
const TOTAL_SEGMENTS = 15;
const SEGMENT_ANGLE = 360 / TOTAL_SEGMENTS;
// 布局微调:按钮位置
const BUTTON_Y = WHEEL_CENTER_Y + WHEEL_RADIUS + 55;
// 布局微调:卡片位置 (下移至底部区域,避免遮挡按钮)
const CARD_CENTER_Y = VIEW_HEIGHT - 85;
const BLESSINGS =
移动下面的卡片区域往下,不要遮挡住按钮。其他都保持不变
Playback pauses when you leave
import React, { useState, useEffect, useRef, useMemo, useCallback } from 'react';
const VIEW_WIDTH = 360;
const VIEW_HEIGHT = 640;
const WHEEL_CENTER_X = VIEW_WIDTH / 2;
const WHEEL_CENTER_Y = VIEW_HEIGHT * 0.42;
const WHEEL_RADIUS = 130;
const TOTAL_SEGMENTS = 15;
const SEGMENT_ANGLE = 360 / TOTAL_SEGMENTS;
// 祝福语配置
const BLESSINGS = [
"接下来这一年,会有人认真对你好", // 01
"你不用再一个人硬撑了", // 02
"你会等到一个明确的回应", // 03
"你正在靠近一个转折点", // 04
"有些好事,已经在路上了", // 05
"这一次,你不是陪跑",
请生成一个【适配移动端竖屏(9:16)的可交互 SVG 动画
Playback pauses when you leave
import React, { useState, useEffect, useRef, useMemo } from 'react';
// 动画配置常量
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
const BG_COLOR = '#0f172a';
const PRIMARY_COLOR = '#38bdf8'; // Sky blue
const ACCENT_COLOR = '#a855f7'; // Purple
const SUCCESS_COLOR = '#22c55e'; // Green
const TEXT_COLOR = '#e2e8f0';
// 依赖服务元数据
const SERVICES_DATA = [
{ id: 'auth', name: 'AuthService', color: '#f43f5e', icon: '🛡️' },
{ id: 'db', name: 'Database', color: '#3b82f6', icon: '💾' },
{ id: 'log
生成一个解释依赖注入原理的动画。依赖注入的常规做法是,创建一
Playback pauses when you leave
import React, { useState, useEffect, useRef, useMemo } from 'react';
// -----------------------------------------------------------------------------
// Constants & Styles
// -----------------------------------------------------------------------------
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
const BG_COLOR = "#0f172a";
const COMPONENT_BG = "#1e293b";
const COMPONENT_BORDER = "#334155";
const TEXT_MAIN = "#f8fafc";
const TEXT_SUB = "#94a3b8";
// Neon Colors
const COLOR_PC = "#3b82f6";
cpu是怎样执行指令集的?涉及到哪些硬件配合以及执行过程?
Playback pauses when you leave
import React, { useState, useEffect, useRef, useMemo } from 'react';
// ----------------------------------------------------------------------
// CONSTANTS & DATA
// ----------------------------------------------------------------------
const VIEW_WIDTH = 1200;
const VIEW_HEIGHT = 700;
const CELL_SIZE = 52; // Slightly smaller to create more tech-density
const GAP = 8;
const THEME = {
bg: '#0f172a', // Slate 900
grid: '#1e293b', // Slate 800
textPrimary: '#f8fafc',
textSecondary: '#64
创建一个完整的元素周期表,下面展示惰性气体、卤素、金属等常见分类按钮,做成可交互动画,当用户点击分类按钮的时候,元素周期表中的对应元素进行高亮展示。下面的一组按钮距离面板太近了,往下挪一点。另外高亮只需要把对
Sponsored
AdsPlayback pauses when you leave
import React, { useState, useEffect, useRef, useMemo } from 'react';
// ----------------------------------------------------------------------
// DATA & CONFIGURATION
// ----------------------------------------------------------------------
const VIEW_WIDTH = 1200;
const VIEW_HEIGHT = 720;
const CELL_SIZE = 54;
const GAP = 6;
// Color Palette
const COLORS = {
bg: '#0f172a',
text: '#e2e8f0',
grid: '#1e293b',
highlight: '#38bdf8',
categories: {
'noble': '#a855f7', // Purple
'h
创建一个完整的元素周期表,下面展示惰性气体、卤素、金属等常见
Playback pauses when you leave
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
const SUN_RADIUS = 50;
const EARTH_RADIUS = 25;
const ORBIT_RX = 380; // Orbit X radius
const ORBIT_RY = 120; // Orbit Y radius (flattened for 3D effect)
const AXIS_TILT = 23.5; // Earth's tilt in degrees
// Helper for generating random stars
const generateStars = (count) => {
return Array.from({ length: count }, () => ({
x: Math.random() * VIEW_WIDTH,
y: Math.random
小学六年级科学上册,模拟地球的自转和公转。展示出公转产生一年
Playback pauses when you leave
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 450;
const VIEW_HEIGHT = 800;
const CENTER_X = VIEW_WIDTH / 2;
const CENTER_Y = VIEW_HEIGHT * 0.4; // Sun positioned slightly higher for vertical layout
export const SolarSystemVertical = () => {
const [tick, setTick] = useState(0);
const requestRef = useRef();
// Performance optimization: Generate static data once
const staticData = useMemo(() => {
// Background particles (darker for white b
生成一个透明背景的太阳svg动画
Playback pauses when you leave
'use client';
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
const CENTER_X = VIEW_WIDTH / 2;
const CENTER_Y = VIEW_HEIGHT / 2;
// Orbit Configuration
const EARTH_ORBIT_R = 220;
const MOON_ORBIT_R = 60;
const EARTH_SPEED = 0.005; // Radians per frame
const MOON_SPEED = 0.06; // Radians per frame
// Helper to generate random stars
const generateStars = (count) => {
return Array.from({ length: count }, () => ({
x:
地球与月亮的运行轨迹动画
Playback pauses when you leave
import React, { useEffect, useRef } from 'react';
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
export const GeneralRelativityView = () => {
const canvasRef = useRef(null);
// 使用 useRef 存储所有动画状态,避免 React 重渲染
const animationState = useRef({
frame: 0,
phase: 0, // 0: Flat, 1: Warping, 2: Orbit, 3: Lensing
massStrength: 0, // 当前引力源强度
targetMassStrength: 0,
gridPoints: [],
planet: { x: -100, y: 100, vx: 0, vy: 0, active: false, trail: [] },
photons: [],