js实现本地svg文件变成svg动画代码
代码语言:html
所属分类:动画
代码描述:js实现本地svg文件变成svg动画代码
代码标签: js 本地 svg 文件 变成 svg 动画 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SVG 描边动画生成器</title>
<!-- 引入 Tailwind CSS 用于界面美化 -->
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-slate-50 text-slate-800 min-h-screen flex flex-col">
<!-- 头部 -->
<header class="bg-white border-b border-slate-200 py-4 px-6 shadow-sm">
<div class="max-w-7xl mx-auto flex justify-between items-center">
<h1 class="text-xl font-bold text-slate-900 flex items-center gap-2">
<svg class="w-6 h-6 text-indigo-600" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"></path></svg>
SVG 描边动画生成器
</h1>
<p class="text-sm text-slate-500">上传静态 SVG 并转换为 CSS 路径绘制动画</p>
</div>
</header>
<!-- 主体内容 -->
<main class="flex-1 max-w-7xl w-full mx-auto p-4 md:p-6 grid grid-cols-1 lg:grid-cols-12 gap-6">
<!-- 左侧输入与控制面板 -->
<section class="lg:col-span-5 flex flex-col gap-6">
<!-- SVG 上传与输入区 -->
<div class="bg-white p-5 rounded-xl border border-slate-200 shadow-sm flex flex-col gap-4">
<div class="flex justify-between items-center">
<label class="block text-sm font-semibold text-slate-700">1. 上传或输入静态 SVG</label>
<button id="btn-load-demo" class="text-xs text-indigo-600 hover:text-indigo-800 font-medium">加载演示示例</button>
</div>
<!-- 拖拽上传区域 -->
<div id="drop-zone" class="border-2 border-dashed border-slate-300 hover:border-indigo-500 rounded-lg p-6 text-center cursor-pointer transition-colors bg-slate-50">
<input type="file" id="file-input" accept=".svg" class="hidden">
<svg class="mx-auto h-10 w-10 text-slate-400" stroke="currentColor" fill="none" viewBox="0 0 48 48" aria-hidden="true">
<path d="M28 8H12a4 4 0 00-4 4v20m32-12v8m0 0v8a4 4 0 01-4 4H12a4 4 0 01-4-4v-4m32-4l-3.172-3.172a4 4 0 00-5.656 0L28 28M8 32l9.172-9.172a4 4 0 015.656 0L28 28m0 0l4-4m4-24h8m-4-4v8m-12 4h.02" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
</svg>
<p class="mt-2 text-xs text-slate-600">点击选择或将 SVG 文件拖到此处</p>
<p class="text-xs text-slate-400 mt-1">仅支持 .svg 格式</p>
</div>
<!-- 备用文本框(可折叠或直接显示) -->
<details class="group">
<summary class="text-xs text-slate-500 cursor-pointer select-none group-open:text-indigo-600">查看/编辑 SVG 代码</summary>
<textarea id="svg-input" class="w-full h-32 p-3 mt-2 text-xs font-mono border border-slate-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none resize-y" placeholder="上传后代码会在此处显示,也可以直接粘贴代码"></textarea>
</details>
</div>
<!-- 参数调节区 -->
<div class="bg-white p-5 rounded-xl border border-slate-200 shadow-sm flex flex-col gap-4">
<h3 class="text-sm font-semibold text-slate-700 border-b border-slate-100 pb-2">2. 动画参数设置</h3>
<!-- 动画时长 -->
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-xs text-slate-500 mb-1">持续时间 (秒)</label>
<input type="number" id="param-duration" step="0.1" min="0.1" value="2.0" class="w-full p-2 border border-slate-300 rounded-md text-sm">
</div>
<div>
<label class="block text-xs text-slate-500 mb-1">延迟启动 (秒)</label>
<input type="number" id="param-delay" step="0.1" min="0" value="0.0" class="w-full p-2 border border-slate-300 rounded-md text-sm">
.........完整代码请登录后点击上方下载按钮下载查看















网友评论0