SVG Animation Examples Gallery
Browse featured svg animation examples
Playback pauses when you leave
```javascript
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 800;
const VIEW_HEIGHT = 450;
const PADDING = 60;
const STEP_INTERVAL = 500; // ms
// 颜色配置
const COLORS = {
bg: '#0f172a', // slate-900
grid: '#334155', // slate-700
axis: '#94a3b8', // slate-400
line: '#3b82f6', // blue-500
lineGlow: '#60a5fa', // blue-400
dot: '#22d3ee', // cyan-400
text: '#cbd5e1', // slate-300
positive: '#10b981', // emerald-500
请生成一个简洁、美观、信息清晰的 SVG 动画,用于可视化抛
Playback pauses when you leave
'use client';
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 1200;
const VIEW_HEIGHT = 700;
const CENTER_X = VIEW_WIDTH / 2;
const CENTER_Y = VIEW_HEIGHT / 2;
// 模拟数据:行星参数
// speed: 轨道角速度 (相对值)
// distance: 距离中心的半径
// size: 行星大小
// color: 基础色
// name: 中文名
const PLANETS = [
{ id: 'mercury', name: '水星', distance: 90, size: 6, speed: 2.5, color: '#A5A5A5', offset: 0 },
{ id: 'venus', name: '金星', distance: 130, size: 10, speed: 1.8, color: '#E3BB76', o
High-quality astronomical simu
Playback pauses when you leave
```javascript
import React, { useState, useEffect, useRef } from 'react';
const TokenTheftAnimation = () => {
// 状态定义
// 0: 初始化 / 等待
// 1: 正常登录 (发送账号密码)
// 2: 获取凭证 (Server -> User: Token)
// 3: 场景切换 (浏览直播/网页)
// 4: 触发陷阱 (点击恶意链接)
// 5: 脚本扫描 (后台静默扫描)
// 6: 窃取凭证 (Token 被复制并发往黑客)
// 7: 异地顶号 (黑客使用 Token 登录)
// 8: 攻击完成 (用户掉线/被劫持)
const [phase, setPhase] = useState(0);
// 动画元素位置与状态
const [userPacket, setUserPacket] = useState({ x: 150, y: 400, opacity: 0, label: '' });
con
原理:当你登录微信(或其他APP)时,服务器会给你发一个像“
Playback pauses when you leave
```javascript
import React, { useState, useEffect, useMemo, useRef } from 'react';
// ----------------------------------------------------------------------
// constants & types
// ----------------------------------------------------------------------
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
const COLOR_BG = '#0f172a'; // Slate-900
const COLOR_ACCENT = '#06b6d4'; // Cyan-500
const COLOR_ODD = '#ef4444'; // Red-500
const COLOR_EVEN = '#10b981'; // Emerald-500
const COLOR_TEXT = '#f8fafc
题干图形依次为:“五角星”“箭头嵌套图形”“类似‘日’字变形
Playback pauses when you leave
'use client';
import React, { useState, useEffect, useRef, useMemo } from 'react';
// -----------------------------------------------------------------------------
// Constants & Config
// -----------------------------------------------------------------------------
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
const GROUND_Y = 500;
const RUNNER_X = 300; // Runner's horizontal position
const COLOR_BG = "#0f172a"; // Slate-900
const COLOR_ACCENT_1 = "#06b6d4"; // Cyan
const COLOR_ACCENT_2 =
在一个深色渐变背景上,设计一个极简风格的小人奔跑动画。小人由
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;
// 坐标定义:抽象的中国地理分布
const LOCATIONS = {
BEIJING: { x: 580, y: 180, label: 'Beijing (北京)', color: '#fbbf24' }, // Gold
SHANGHAI: { x: 650, y: 320, label: 'YRD (长三角)', color: '#38bdf8' }, // Cyan
SHENZHEN: { x: 560, y: 450, label: 'GBA (大湾区)', color: '#38bdf8' },
CHENGDU: { x: 380, y: 300, la
北京在地里位置的重要性,侧重经济方面
Playback pauses when you leave
```javascript
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 1920;
const VIEW_HEIGHT = 1080;
const TOTAL_DURATION = 27000; // 27 seconds
// 颜色定义
const COLORS = {
bg: '#0f172a',
ground: '#1e293b',
boySkin: '#fca5a5',
boyShirt: '#facc15',
boyPants: '#3b82f6',
fairyCore: '#e879f9',
fairyGlow: '#c084fc',
treeDark: '#0f172a',
treeLight: '#334155',
caveDark: '#020617',
crystal: '#22d3ee',
lightBeam: 'rgba(255,255,255,0.1)'
};
// 工具函数:
角色设计:设定2个核心角色(如少年与奇幻生物),风格为简约卡
Playback pauses when you leave
```javascript
'use client';
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
// 粒子系统:桃源花瓣
const ParticleSystem = () => {
const [particles, setParticles] = useState(() =>
Array.from({ length: 60 }).map(() => ({
x: Math.random() * VIEW_WIDTH,
y: Math.random() * VIEW_HEIGHT,
size: Math.random() * 4 + 1,
speed: Math.random() * 1.5 + 0.5,
wobble: Math.random() * Math.PI * 2,
opacity: Ma
刘备,张飞,关羽,桃源三结义的动画
Sponsored
AdsPlayback pauses when you leave
'use client';
import React, { useState, useEffect, useMemo } from 'react';
export default function CICDCanaryView() {
const [phase, setPhase] = useState(0);
// 0: CI Build & Test
// 1: Deploy v2 (Init)
// 2: Canary 10%
// 3: Canary 50%
// 4: Full Rollout 100%
// 5: Decommission v1
const [trafficSplit, setTrafficSplit] = useState(0); // 0 to 1 (percentage to v2)
const [logs, setLogs] = useState<string[]>([]);
// Simulation Loop
useEffect(() => {
let timeout: NodeJS.T
ci/cd 灰度发布
Playback pauses when you leave
'use client';
import React, { useState, useEffect, useRef, useMemo } from 'react';
// --- Constants & Helper Functions ---
const WIDTH = 1200;
const HEIGHT = 675; // 16:9 Aspect Ratio
const GROUND_Y = 550;
const FPS = 60;
// Color Palette
const COLORS = {
bg: '#0f172a',
blue: '#38bdf8',
blueGlow: '#0ea5e9',
red: '#f43f5e',
redGlow: '#e11d48',
white: '#ffffff',
text: 'rgba(255, 255, 255, 0.8)',
grid: 'rgba(56, 189, 248, 0.1)',
};
// Math Helpers
const lerp = (start, end, t) =>
兩個火柴人使用各種炫酷技能打架,例:巨大化、招喚黑洞、激光、
Playback pauses when you leave
```tsx
'use client';
import React, { useState, useEffect, useRef, useMemo } from 'react';
const VIEW_WIDTH = 1000;
const VIEW_HEIGHT = 600;
// 诗歌内容配置
const POEM_LINES = [
{ text: "东皋薄暮望", sub: "Gazing from the heights at twilight", duration: 4000 },
{ text: "徙倚欲何依", sub: "Wandering with no one to rely on", duration: 4000 },
{ text: "树树皆秋色", sub: "Every tree is dyed with autumn colors", duration: 4000 },
{ text: "山山唯落晖", sub: "Every mountain reflects the setting sun", duration: 4000 },