chore(tempLate): 二进制资源迁至 CDN 并改指 hb.cdn 引用

TempLate/assets 二进制已迁移至 hb.cdn.gvsds.com(本地 assets - Copy 仅为上传参考源),
将根域页面的有效二进制引用改指 CDN:
- index.html(icon/ICON.png)、_base(fonts woff2/ttf/otf + hlogos/gnobg.png)
- TempLate/1、Members/B-Smooth、Members/TermiNexus(members 头像 / Mascot 图)
- .gitignore 排除 assets - Copy;MC/OMC/错误页等子域或死链引用保持原样
This commit is contained in:
TermiNexus committed 2026-08-17 22:02:38 +08:00
1 parent e6388e1e0a
commit 8aab21e4bc
68 files changed
+13 -554

No files matched your search

+4 -1
View File
@@ -52,4 +52,7 @@ __pycache__/
# SVE 前端工程(独立 git 仓库)
/SVE/
# SVE 的编译文件
/TempLate/SVE/
/TempLate/SVE/
# TempLate 二进制资源 CDN 上传源(仅本地参考,hb.cdn.gvsds.com 与其无关联)
/TempLate/assets - Copy/
+2 -2
View File
@@ -60,7 +60,7 @@
<!-- 主持人信息 -->
<div class="bg-white dark:bg-slate-800 border border-gray-200 dark:border-slate-700 rounded-lg p-4 flex items-center gap-4 shadow-sm">
<div class="w-12 h-12 rounded-full overflow-hidden border-2 border-primary/20 dark:border-blue-500/20 flex-shrink-0">
<img src="/assets/members/terminexus.jpg" alt="TermiNexus" class="w-full h-full object-cover">
<img src="https://hb.cdn.gvsds.com/assets/members/terminexus.jpg" alt="TermiNexus" class="w-full h-full object-cover">
</div>
<div class="flex-1 min-w-0">
<p class="text-xs text-gray-400 dark:text-gray-500 mb-0.5 uppercase tracking-wider">主持 &amp; 主讲</p>
@@ -220,7 +220,7 @@
<p class="text-sm text-gray-500 dark:text-gray-400 font-milky-han">团队的价值不止于项目成果,更在于让每个成员在成长中遇见更好的自己。</p>
<div class="flex items-center gap-3 mt-5 pt-4 border-t border-gray-100 dark:border-slate-700">
<div class="w-7 h-7 rounded-full overflow-hidden">
<img src="/assets/members/terminexus.jpg" alt="" class="w-full h-full object-cover">
<img src="https://hb.cdn.gvsds.com/assets/members/terminexus.jpg" alt="" class="w-full h-full object-cover">
</div>
<div>
<p class="text-xs font-semibold text-text-primary dark:text-white">TermiNexus</p>
+2 -2
View File
@@ -449,7 +449,7 @@ document.getElementById("header-png").innerHTML = `<div class="flex items-center
<h2 class="section-title">关于画师</h2>
<div class="about-grid">
<div class="avatar-frame">
<img src="https://www.gvsds.com/assets/members/quchenyueyuan.jpg" alt="B-Smooth Avatar">
<img src="https://hb.cdn.gvsds.com/assets/members/quchenyueyuan.jpg" alt="B-Smooth Avatar">
</div>
<div class="about-text">
<h3>B-Smooth</h3>
@@ -495,7 +495,7 @@ document.getElementById("header-png").innerHTML = `<div class="flex items-center
<h2 class="section-title">吉祥物企划</h2>
<div class="mascot-layout">
<div class="mascot-image">
<img src="https://www.gvsds.com/assets/img/Mascot/OriginalImage_3_Resize.png" alt="银霜 Silver Frost">
<img src="https://hb.cdn.gvsds.com/assets/img/Mascot/OriginalImage_3_Resize.png" alt="银霜 Silver Frost">
</div>
<div class="mascot-info">
<div class="mascot-name-cn">银霜 · 风獠</div>
+1 -1
View File
@@ -38,7 +38,7 @@ html,body{margin:0;padding:0;}
<div class="relative w-40 h-40 mb-6 animate-float">
<div class="absolute inset-0 rounded-full border-2 border-dashed border-blue-400/30 animate-[spin_10s_linear_infinite]"></div>
<div class="absolute inset-2 rounded-full border border-blue-500/20"></div>
<img src="/assets/members/terminexus.jpg" alt="Avatar" class="w-full h-full rounded-full object-cover shadow-lg relative z-10 bg-white">
<img src="https://hb.cdn.gvsds.com/assets/members/terminexus.jpg" alt="Avatar" class="w-full h-full rounded-full object-cover shadow-lg relative z-10 bg-white">
<div class="absolute bottom-2 right-2 w-4 h-4 bg-green-500 border-2 border-white rounded-full z-20" title="Online"></div>
</div>
<h1 class="font-serif-display text-3xl font-bold text-slate-800 mb-1 tracking-wide">陈砚辞</h1>
+3 -3
View File
@@ -13,8 +13,8 @@
<style id="external-tw-style" type="text/tailwindcss">
@layer utilities{.content-auto{content-visibility:auto}.menu-shadow{box-shadow:0 8px 16px rgba(0,0,0,.08)}.search-result-highlight{@apply bg-yellow-100 text-primary font-medium}.tag-basic{@apply bg-gray-100 text-gray-700 text-xs px-1.5 py-0.5 rounded}.tag-new{@apply bg-[#e6f7e9] text-[#00b42a] text-xs px-1.5 py-0.5 rounded}.tag-hot{@apply bg-[#fff2e8] text-[#ff7d00] text-xs px-1.5 py-0.5 rounded}.tag-preview{@apply bg-[#e8f3ff] text-[#0066ff] text-xs px-1.5 py-0.5 rounded}.tag-feature{@apply bg-[#f5faff] text-[#0066ff] text-xs px-1.5 py-0.5 rounded}.sidebar-submenu-active{@apply bg-primary/10 text-primary font-medium border-l-2 border-primary}.mobile-menu-enter{@apply opacity-0 translate-x-full}.mobile-menu-enter-active{@apply opacity-100 translate-x-0 transition-all duration-300}.mobile-menu-exit{@apply opacity-100 translate-x-0}.mobile-menu-exit-active{@apply opacity-0 translate-x-full transition-all duration-300}.search-btn-focus{@apply border-primary text-primary}.card-shadow{box-shadow:0 4px 12px rgba(0,0,0,.08)}.file-corner{position:relative}.file-corner::after{content:'';position:absolute;top:0;right:0;border-width:0 24px 24px 0;border-style:solid;border-color:transparent #d1d5db transparent transparent}.scale-in{animation:scaleIn .3s ease-out forwards}@keyframes scaleIn{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.slide-up{animation:slideUp .4s ease-out forwards}@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-float{animation:float 6s ease-in-out infinite}.animate-pulse-slow{animation:pulse 4s cubic-bezier(.4,0,.6,1) infinite}.window-titlebar{background:linear-gradient(90deg,navy,#1084d0)}.window-border{border-top:2px solid #fff;border-left:2px solid #fff;border-right:2px solid #7b7b7b;border-bottom:2px solid #7b7b7b}.window-border-inset{border-top:2px solid #7b7b7b;border-left:2px solid #7b7b7b;border-right:2px solid #fff;border-bottom:2px solid #fff}.search-btn{@apply h-full px-4 text-gray-500 transition-all duration-200 ease-in-out hover:text-primary flex items-center justify-center rounded-r-md}.search-icon{@apply transition-transform duration-200 ease-in-out}.search-btn:hover .search-icon{transform:scale(1.03)}.search-btn:active .search-icon{transform:scale(0.95)}.search-wrapper{@apply transition-all duration-300 ease-in-out}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}100%{transform:translateY(0)}}@keyframes gradientAnimation{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}section { position: relative; }section .absolute.left-0,section .absolute.right-0 { overflow: hidden; }@keyframes gradientAnimation {0% { background-position: 0% 50%; }50% { background-position: 100% 50%; }100% { background-position: 0% 50%; }}
/*@font-face{font-family:"Dot Matrix";src:url("https://fonts.cdnfonts.com/css/dot-matrix") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Milky Han Term J Heavy";src:url("https://www.gvsds.com/assets/fonts/MilkyHanTermJHeavy.woff2") format("woff2"),url("https://www.gvsds.com/assets/fonts/MilkyHanTermJHeavy.ttf") format("truetype");font-style:normal;font-display:swap}
@font-face{font-family:'Playlist Script';src:url('https://www.gvsds.com/assets/fonts/PlaylistScript.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}*/
@font-face{font-family:"Milky Han Term J Heavy";src:url("https://hb.cdn.gvsds.com/assets/fonts/MilkyHanTermJHeavy.woff2") format("woff2"),url("https://hb.cdn.gvsds.com/assets/fonts/MilkyHanTermJHeavy.ttf") format("truetype");font-style:normal;font-display:swap}
@font-face{font-family:'Playlist Script';src:url('https://hb.cdn.gvsds.com/assets/fonts/PlaylistScript.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}*/
</style>
<style id="external-tw-style" type="text/tailwindcss">
#header[data-nav-theme="dark"] nav a[data-menu] {color: #555867;}
@@ -27,7 +27,7 @@
<header id="header" class="fixed top-0 left-0 right-0 z-50 bg-white shadow-sm border-b border-gray-100 bg-[linear-gradient(120deg,#ffffff,#f0f8ff,#f8f0ff,#ffffff)] bg-[size:400%_400%] animate-[gradientAnimation_15s_ease_infinite] dark:bg-gray-900 dark:border-gray-800 dark:bg-[linear-gradient(120deg,#111827,#1e293b,#271e3b,#111827)] transition-all duration-300 ease-in-out">
<div class="flex items-center justify-between h-16 px-6">
<div class="flex items-center space-x-4">
<div class="flex items-center text-primary text-xl font-bold h-10" id="header-png"><img src="https://www.gvsds.com/assets/hlogos/gnobg.png" style="height: 100%; object-fit: contain; margin-top: -8px;"></div>
<div class="flex items-center text-primary text-xl font-bold h-10" id="header-png"><img src="https://hb.cdn.gvsds.com/assets/hlogos/gnobg.png" style="height: 100%; object-fit: contain; margin-top: -8px;"></div>
<button id="mobile-menu-btn" class="md:hidden text-text-primary text-xl transition-all duration-200 hover:scale-110"><i class="fa fa-bars"></i></button>
</div>
<nav class="hidden md:flex items-center space-x-6">
-316
View File
@@ -1,316 +0,0 @@
const MenuData1 = {
model: {
title: "大模型",
description: "一站式为企业和开发者提供大模型能力体系,助力云上开发者轻松完成 AI 落地。",
submenus: [{
id: "experience",
name: "AI 体验中心",
icon: "fa-rocket"
},
{
id: "tongyi-models",
name: "通义大模型",
icon: "fa-brain"
},
{
id: "services",
name: "大模型服务",
icon: "fa-cogs"
},
{
id: "tools",
name: "智能工具",
icon: "fa-wrench"
}
],
contents: {
experience: [{
type: "two-cards",
cards: [{
name: "AI 体验馆",
description: "免费体验前沿 AI 应用和最新通义系列大模型",
link: "/ai-experience",
target: "_blank"
},
{
name: "大模型服务平台百炼",
description: "为企业打造的大模型服务与应用开发平台",
link: "/bailian-platform",
target: "_self"
}
]
},
{
type: "four-columns",
title: "通义大模型家族",
subtitle: "更强效果、更高性能、更优价格",
items: [{
name: "通义万相2.5 - 图生视频 - Preview",
tag: "preview",
description: "稳定保持图像主体、风格和文字等细节信息",
link: "/tongyi-wanxiang/2.5/image-to-video"
},
{
name: "通义百聆 - Fun · ASR",
tag: "new",
description: "支持中英文自由切换,具备更强的噪声鲁棒性",
link: "/tongyi-bailing/fun-asr"
},
{
name: "通义千问3 - VL · Plus",
description: "视觉 Coding、空间感知、多模态思考等全面升级",
link: "/tongyi-qianwen/3/vl-plus"
},
{
name: "通义万相2.5 - 文生视频 - Preview",
tag: "preview",
description: "丝滑动态能力,电影美学控制",
link: "/tongyi-wanxiang/2.5/text-to-video"
},
{
name: "通义千问3 - Omni · Flash",
description: "支持 119 种语言文本交互",
link: "/tongyi-qianwen/3/omni-flash"
},
{
name: "通义千问 - Image",
description: "卓越的文本渲染能力",
link: "/tongyi-qianwen/image"
},
{
name: "通义千问3 - Max",
tag: "hot",
description: "达到领域 SOTA 水平",
link: "/tongyi-qianwen/3/max",
target: "_blank"
},
{
name: "通义千问3",
description: "Qwen3 最强 235B 旗舰版",
link: "/tongyi-qianwen/3",
target: "_blank"
},
{
name: "通义千问 - Qwen3 · Coder",
description: "强大的 Coding Agent 能力",
link: "/tongyi-qianwen/qwen3-coder"
},
{
name: "通义千问 - Plus",
description: "Owen-Plus:Latest 升级",
link: "/tongyi-qianwen/plus"
},
{
name: "通义千问 - Flash",
description: "思考和非思考模式融合",
link: "/tongyi-qianwen/flash"
},
{
name: "通义千问3 - Image",
tag: "new",
description: "写实质感细腻画面",
link: "/tongyi-qianwen/3/image"
}
]
},
{
type: "four-columns",
title: "大模型服务平台",
items: [{
name: "大模型服务平台百炼 - 模型体验",
description: "在线体验全尺寸、多种模态的模型效果",
link: "/bailian-platform/model-experience"
},
{
name: "大模型服务平台百炼 - 微调与部署",
description: "一站式大模型服务平台",
link: "/bailian-platform/fine-tune-deploy"
},
{
name: "人工智能平台 PAI",
description: "AI Native 的算法工程平台",
link: "/pai-platform",
target: "_blank"
},
{
name: "大模型服务平台百炼 - 应用模版",
tag: "new",
description: "丰富多元化的应用模版",
link: "/bailian-platform/application-templates"
},
{
name: "大模型服务平台百炼 - MCP服务",
tag: "new",
description: "全生命周期MCP托管",
link: "/bailian-platform/mcp-service"
},
{
name: "大模型服务平台百炼 - 智能体",
description: "构建企业级 Agent",
link: "/bailian-platform/agent-builder"
},
{
name: "大模型服务平台百炼 - 全秒",
description: "多模态内容创作工具",
link: "/bailian-platform/quanmiao"
},
{
name: "大模型服务平台百炼 - 通义法睿",
description: "法律智能助手",
link: "/bailian-platform/tongyi-farui"
}
]
},
{
type: "four-columns",
title: "大模型服务平台",
items: [{
name: "大模型服务平台百炼 - 模型体验",
description: "在线体验全尺寸、多种模态的模型效果",
link: "/bailian-platform/model-experience"
},
{
name: "大模型服务平台百炼 - 微调与部署",
description: "一站式大模型服务平台",
link: "/bailian-platform/fine-tune-deploy"
},
{
name: "人工智能平台 PAI",
description: "AI Native 的算法工程平台",
link: "/pai-platform",
target: "_blank"
},
{
name: "大模型服务平台百炼 - 应用模版",
tag: "new",
description: "丰富多元化的应用模版",
link: "/bailian-platform/application-templates"
},
{
name: "大模型服务平台百炼 - MCP服务",
tag: "new",
description: "全生命周期MCP托管",
link: "/bailian-platform/mcp-service"
},
{
name: "大模型服务平台百炼 - 智能体",
description: "构建企业级 Agent",
link: "/bailian-platform/agent-builder"
},
{
name: "大模型服务平台百炼 - 全秒",
description: "多模态内容创作工具",
link: "/bailian-platform/quanmiao"
},
{
name: "大模型服务平台百炼 - 通义法睿",
description: "法律智能助手",
link: "/bailian-platform/tongyi-farui"
}
]
}
],
"tongyi-models": [{
type: "four-columns",
title: "通义大模型家族",
subtitle: "更强效果、更高性能、更优价格",
items: [{
name: "通义千问3 - Omni · Flash",
description: "支持 119 种语言文本交互",
link: "/tongyi-qianwen/3/omni-flash"
},
{
name: "通义千问 - Image",
description: "卓越的文本渲染能力",
link: "/tongyi-qianwen/image"
},
{
name: "通义千问3 - Max",
tag: "hot",
description: "达到领域 SOTA 水平",
link: "/tongyi-qianwen/3/max",
target: "_blank"
},
{
name: "通义千问3",
description: "Qwen3 最强 235B 旗舰版",
link: "/tongyi-qianwen/3",
target: "_blank"
}
]
}]
}
}
};
const MenuData2 = {
solutions: {
title: "解决方案",
description: "为各行业提供完整的人工智能解决方案,加速业务创新与数字化转型。",
submenus: [{
id: "industry",
name: "行业解决方案",
icon: "fa-building"
},
{
id: "enterprise",
name: "企业级方案",
icon: "fa-briefcase"
},
{
id: "developer",
name: "开发者方案",
icon: "fa-code"
},
{
id: "case",
name: "成功案例",
icon: "fa-trophy"
}
],
contents: {
industry: [{
type: "four-columns",
title: "行业解决方案",
items: [{
name: "金融行业AI解决方案",
tag: "hot",
description: "智能风控、智能投顾、智能客服",
link: "/solutions/finance"
},
{
name: "智能制造解决方案",
description: "预测性维护、质量检测、智能排产",
link: "/solutions/manufacturing"
},
{
name: "智慧零售解决方案",
description: "智能推荐、客流分析、无人零售",
link: "/solutions/retail"
},
{
name: "智慧医疗解决方案",
tag: "new",
description: "医学影像分析、智能诊断辅助",
link: "/solutions/medical"
}
]
}],
enterprise: [{
type: "two-cards",
cards: [{
name: "企业知识管理平台",
description: "基于大模型的智能知识检索与分析平台",
link: "/solutions/enterprise/knowledge",
target: "_self"
},
{
name: "智能客户服务系统",
description: "全渠道智能客服解决方案,提升客户满意度",
link: "/solutions/enterprise/service",
target: "_self"
}
]
}]
}
}
};
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 341 KiB

-228
View File
@@ -1,228 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<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>
<script>
// 配置Tailwind自定义工具类
tailwind.config = {
theme: {
extend: {
screens: {
'xs': '360px',
},
},
}
}
</script>
<style type="text/tailwindcss">
@layer utilities {
.content-auto {
content-visibility: auto;
}
.svg-container {
@apply w-full h-auto transition-all duration-500 ease-in-out;
}
.svg-container-desktop {
@apply max-w-5xl max-h-[80vh];
}
.svg-container-mobile {
@apply max-w-full max-h-[60vh];
}
}
</style>
</head>
<body class="bg-black min-h-screen flex items-center justify-center p-4">
<!-- 外部SVG加载容器 - 响应式尺寸适配 -->
<object id="svg-container"
data="./ICON.svg"
type="image/svg+xml"
class="svg-container svg-container-desktop md:svg-container-desktop xs:svg-container-mobile object-contain">
<!-- 加载失败时显示的替代内容 -->
<div class="text-white text-center p-8">
<i class="fa fa-exclamation-triangle text-4xl mb-4 text-yellow-400"></i>
<p>无法加载SVG文件</p>
<p class="text-sm text-gray-400 mt-2">请检查文件路径是否正确</p>
</div>
</object>
<script>
document.addEventListener('DOMContentLoaded', () => {
const svgObject = document.getElementById('svg-container');
let isMobile = window.innerWidth < 768;
// 根据屏幕尺寸动态调整SVG容器
function adjustSvgContainer() {
isMobile = window.innerWidth < 768;
if (isMobile) {
svgObject.classList.remove('svg-container-desktop');
svgObject.classList.add('svg-container-mobile');
} else {
svgObject.classList.remove('svg-container-mobile');
svgObject.classList.add('svg-container-desktop');
}
}
// 初始化时调整
adjustSvgContainer();
// 窗口大小改变时重新调整
window.addEventListener('resize', adjustSvgContainer);
// 处理SVG加载完成事件
svgObject.addEventListener('load', () => {
try {
const svgDoc = svgObject.contentDocument;
const svgRoot = svgDoc.querySelector('svg');
// 设置SVG视口以确保响应式行为
svgRoot.setAttribute('preserveAspectRatio', 'xMidYMid meet');
svgRoot.removeAttribute('width');
svgRoot.removeAttribute('height');
svgRoot.setAttribute('width', '100%');
svgRoot.setAttribute('height', '100%');
// 添加SVG内部样式适配黑色主题
const style = svgDoc.createElementNS("http://www.w3.org/2000/svg", "style");
style.textContent = `
svg {
background: #000;
width: 100%;
height: 100%;
}
[name^="node_"] {
opacity: 0;
transform-origin: center;
/* 根据需要调整SVG元素颜色以适应黑色背景 */
fill: #fff;
stroke: #ddd;
}
/* 文本元素特殊处理 */
text {
fill: #fff !important;
font-size: ${isMobile ? '0.8em' : '1em'} !important;
}
`;
svgRoot.prepend(style);
// 获取并排序所有节点
const nodes = Array.from(svgDoc.querySelectorAll('[name^="node_"]'))
.sort((a, b) => {
const numA = parseInt(a.getAttribute('name').split('_')[1]);
const numB = parseInt(b.getAttribute('name').split('_')[1]);
return numA - numB;
});
// 动画参数 - 移动端使用更快的动画节奏
const delayBetweenNodes = isMobile ? 150 : 200; // 节点间延迟
const animationDuration = isMobile ? 500 : 600; // 动画持续时间
// 为每个节点添加动画
nodes.forEach((node, index) => {
const startTime = index * delayBetweenNodes;
// 透明度动画
const animOpacity = svgDoc.createElementNS("http://www.w3.org/2000/svg", "animate");
animOpacity.setAttribute("attributeName", "opacity");
animOpacity.setAttribute("from", "0");
animOpacity.setAttribute("to", "1");
animOpacity.setAttribute("begin", `${startTime}ms`);
animOpacity.setAttribute("dur", `${animationDuration}ms`);
animOpacity.setAttribute("fill", "freeze");
// 缩放动画
const animScale = svgDoc.createElementNS("http://www.w3.org/2000/svg", "animateTransform");
animScale.setAttribute("attributeName", "transform");
animScale.setAttribute("type", "scale");
animScale.setAttribute("from", "0.9");
animScale.setAttribute("to", "1");
animScale.setAttribute("begin", `${startTime}ms`);
animScale.setAttribute("dur", `${animationDuration}ms`);
animScale.setAttribute("fill", "freeze");
node.appendChild(animOpacity);
node.appendChild(animScale);
// 根据节点类型添加位置动画
switch(node.tagName.toLowerCase()) {
case "rect":
case "image": {
const currentX = parseFloat(node.getAttribute("x"));
const animX = svgDoc.createElementNS("http://www.w3.org/2000/svg", "animate");
animX.setAttribute("attributeName", "x");
animX.setAttribute("from", (currentX - 10).toString());
animX.setAttribute("to", currentX.toString());
animX.setAttribute("begin", `${startTime}ms`);
animX.setAttribute("dur", `${animationDuration}ms`);
animX.setAttribute("fill", "freeze");
node.appendChild(animX);
break;
}
case "circle":
case "ellipse": {
const currentCx = parseFloat(node.getAttribute("cx"));
const animCx = svgDoc.createElementNS("http://www.w3.org/2000/svg", "animate");
animCx.setAttribute("attributeName", "cx");
animCx.setAttribute("from", (currentCx - 10).toString());
animCx.setAttribute("to", currentCx.toString());
animCx.setAttribute("begin", `${startTime}ms`);
animCx.setAttribute("dur", `${animationDuration}ms`);
animCx.setAttribute("fill", "freeze");
node.appendChild(animCx);
break;
}
case "polygon":
case "polyline":
case "line": {
const points = node.getAttribute("points");
if (points) {
const fromPoints = points.split(' ').map(coord => {
const [x, y] = coord.split(',');
return `${parseFloat(x) - 10},${y}`;
}).join(' ');
const animPoints = svgDoc.createElementNS("http://www.w3.org/2000/svg", "animate");
animPoints.setAttribute("attributeName", "points");
animPoints.setAttribute("from", fromPoints);
animPoints.setAttribute("to", points);
animPoints.setAttribute("begin", `${startTime}ms`);
animPoints.setAttribute("dur", `${animationDuration}ms`);
animPoints.setAttribute("fill", "freeze");
node.appendChild(animPoints);
}
break;
}
case "text": {
const currentX = parseFloat(node.getAttribute("x"));
const animX = svgDoc.createElementNS("http://www.w3.org/2000/svg", "animate");
animX.setAttribute("attributeName", "x");
animX.setAttribute("from", (currentX - 10).toString());
animX.setAttribute("to", currentX.toString());
animX.setAttribute("begin", `${startTime}ms`);
animX.setAttribute("dur", `${animationDuration}ms`);
animX.setAttribute("fill", "freeze");
node.appendChild(animX);
break;
}
}
});
} catch (error) {
console.error("Error processing SVG:", error);
}
});
// 处理SVG加载失败情况
svgObject.addEventListener('error', () => {
console.error("Failed to load SVG file");
});
});
</script>
</body>
</html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 834 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

+1 -1
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>银河锋锐软件开发工作室</title>
<link rel="icon" href="/assets/icon/ICON.png">
<link rel="icon" href="https://hb.cdn.gvsds.com/assets/icon/ICON.png">
<script type="module" crossorigin src="/GVSite/index-D6E7GCNx.js"></script>
<link rel="stylesheet" crossorigin href="/GVSite/index-C4rcZEW_.css">
</head>