spline-3d-integration - VANILLA_INTEGRATION
Vanilla JS / HTML 集成根据你需要的控制程度有两种方法。方法 A — Web 组件大多数情况下推荐无需 npm。只需添加到 HTML 即可。支持懒加载、透明背景和鼠标交互。!-- In head — loads the web component --scripttypemodulesrchttps://unpkg.com/splinetool/viewer/build/spline-viewer.js/script!-- Basic embed --spline-viewerurlhttps://prod.spline.design/REPLACE_ME/scene.splinecode/spline-viewer!-- With mouse-following interactivity (e.g. cursor-tracking robots) --spline-viewerurlhttps://prod.spline.design/REPLACE_ME/scene.splinecodeevents-targetglobal/spline-viewer!-- Transparent background --spline-viewerurlhttps://prod.spline.design/REPLACE_ME/scene.splinecodebackgroundtransparent/spline-viewer方法 B — 运行时 API当需要编程控制时当你需要从自己的 JS 中操作对象、触发动画或响应事件时使用。安装npminstallsplinetool/runtime或通过 CDN无需安装scripttypemoduleimport{Application}fromhttps://unpkg.com/splinetool/runtimelatest/build/runtime.module.js;// ... rest of your code/script基本用法import{Application}fromsplinetool/runtime;constcanvasdocument.getElementById(canvas3d);constsplinenewApplication(canvas);spline.load(https://prod.spline.design/REPLACE_ME/scene.splinecode).then((){console.log(Scene loaded);});带对象交互spline.load(sceneUrl).then((){constobjspline.findObjectByName(Cube);// or by ID: spline.findObjectById(uuid-here)obj.position.x50;obj.rotation.yMath.PI/4;// NOTE: radians, NOT degreesobj.scale.x2;});带事件监听器spline.load(sceneUrl).then((){spline.addEventListener(mouseDown,(e){console.log(Clicked:,e.target.name);});});以编程方式触发动画spline.load(sceneUrl).then((){constobjspline.findObjectByName(MyObject);obj.emitEvent(mouseHover);// forwardobj.emitEventReverse(mouseHover);// reverse});全页背景设置最常见的用例——Spline 场景位于所有内容之后。!DOCTYPEhtmlhtmlheadscripttypemodulesrchttps://unpkg.com/splinetool/viewer/build/spline-viewer.js/scriptstyle*{margin:0;padding:0;box-sizing:border-box;}body{/* DO NOT add overflow: hidden here — it will break page scroll */position:relative;}.spline-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;/* pointer-events: none — use this if scene is decorative only *//* pointer-events: all — use this if you want mouse interaction */pointer-events:all;}.content{position:relative;z-index:1;/* Make sure content elements dont get blocked by the 3D scene */}/* Fallback shown while Spline loads or if it fails */.spline-fallback{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;background:#0a0a0a;/* match your sites base color */display:none;/* hidden by default, shown via JS if needed */}/style/headbody!-- Fallback (shown if Spline fails to load) --divclassspline-fallbackidspline-fallback/div!-- Spline background --divclassspline-bgspline-viewerurlhttps://prod.spline.design/REPLACE_ME/scene.splinecodeevents-targetglobalstylewidth:100%;height:100%;/spline-viewer/div!-- Your website content --divclasscontenth1Your Content Here/h1/divscript// Show fallback if Spline hasnt loaded after 8 secondssetTimeout((){constviewerdocument.querySelector(spline-viewer);if(!viewer||!viewer.shadowRoot){document.getElementById(spline-fallback).style.displayblock;}},8000);// Skip Spline entirely on low-end mobile to save battery performanceif(window.innerWidth768||navigator.hardwareConcurrency2){document.querySelector(.spline-bg).style.displaynone;document.getElementById(spline-fallback).style.displayblock;}/script/body/html可用事件类型事件用例mouseDown点击/点按对象mouseUp点击后释放mouseHover光标进入对象区域mousePress按住点击keyDown按键按下keyUp按键释放start场景已加载并开始scroll页面滚动预加载减少感知加载时间添加到head中以便在脚本运行前开始获取场景文件linkrelpreloadhrefhttps://prod.spline.design/REPLACE_ME/scene.splinecodeasfetchcrossorigin完整优化策略请参阅 PERFORMANCE.md。调试请参阅 COMMON_PROBLEMS.md。

相关新闻

DIC主程序实战:从亚像素匹配到应变应力场求解

DIC主程序实战:从亚像素匹配到应变应力场求解

简介:这份资源是面向材料科学、工程力学与生物医学等领域学习者的DIC(数字图像相关)MATLAB实现包,用于通过连续图像序列非接触式测量物体表面的位移、应变与应力。压缩包共161个文件,约6.01MB,以82个m脚本为…

2026/10/18 4:05:24 阅读更多 →
WinForms ListView嵌套ComboBox实现可编辑列表

WinForms ListView嵌套ComboBox实现可编辑列表

简介:本资源面向C# Windows Forms开发初学者与界面交互进阶者,聚焦解决ListView控件原生不支持内嵌下拉选择的痛点,提供在ListView各列中动态添加ComboBox等交互控件的完整实现方案。资源包共25个文件,含8个核心C#源码&#xff08…

2026/10/18 4:05:24 阅读更多 →
ARP协议深度解析:从抓包原理到故障排查与安全防护

ARP协议深度解析:从抓包原理到故障排查与安全防护

1. 从一个抓包现场说起:ARP到底在干什么很多人第一次接触ARP,是在Wireshark的抓包窗口里。满屏的广播包,一行行写着“Who has 192.168.1.1? Tell 192.168.1.100”,紧接着下面跟着一条“192.168.1.1 is at aa:bb:cc:dd:ee:ff”。看…

2026/10/18 4:05:24 阅读更多 →

最新新闻

Vim翻页命令全解析:从整屏滚动到精确跳转的效率指南

Vim翻页命令全解析:从整屏滚动到精确跳转的效率指南

我先说一个真实场景:你接手一台旧服务器,日志文件五千多行,甲方催着查问题。你顺手vim app.log,结果发现文件太长,屏幕一页装不下。这时候你想翻页,脑子里最关键的知识却只有“方向键能上下移动”&#xff…

2026/10/18 15:18:00 阅读更多 →
rasm2实战:从机器码到汇编,轻松搞定多架构反汇编

rasm2实战:从机器码到汇编,轻松搞定多架构反汇编

昨天一个朋友在调试一块老设备的固件,日志里吐出一串十六进制字节,他对着屏幕发了十几分钟呆,我路过瞄了一眼,说“用rasm2 -d翻一下不就完了”。他有点意外:“rasm2 不是做汇编的吗?” 确实,ras…

2026/10/18 15:18:00 阅读更多 →
测试语义锚定:让AI在自动化测试中稳定落地的工程化方法

测试语义锚定:让AI在自动化测试中稳定落地的工程化方法

1. 为什么“接入AI”不是加个API调用就完事?“想让你的自动化测试接入AI,这一步必须要有。”——这句话在最近三个月里,我至少在五个不同行业的技术分享会上听到过。有某高校实验室的测试平台重构项目,有某电商公司App回归测试提效…

2026/10/18 15:18:00 阅读更多 →
AI生成2D游戏攻击动画序列帧:Stable Diffusion+LoRA+ControlNet完整工作流

AI生成2D游戏攻击动画序列帧:Stable Diffusion+LoRA+ControlNet完整工作流

很多游戏团队在补角色攻击动画素材时都会遇到同一个痛点:动画序列帧的制作成本极高,外包一套 8 到 12 帧的轻击动作可能就要好几天;如果尝试用 AI 绘画直接生成多帧动作,又很容易出现角色脸型飘忽、服装细节漂移、动作节奏断档、逐…

2026/10/18 15:18:00 阅读更多 →
C++ EasyX仿制超级马里奥:从游戏循环到碰撞检测的完整实战

C++ EasyX仿制超级马里奥:从游戏循环到碰撞检测的完整实战

简介:基于C与EasyX图形库还原超级马里奥玩法的项目源码包,面向具备基础C语法、希望进阶图形界面与游戏循环开发的初学者。资源已完整实现1-1、1-2、1-3三个关卡,涵盖移动、跳跃、加速、发射火球、下蹲钻管道等核心操作,操作采用A/…

2026/10/18 15:18:00 阅读更多 →
云优化 ABAP 语言,如何用语法与 API 边界守住企业系统的升级稳定性

云优化 ABAP 语言,如何用语法与 API 边界守住企业系统的升级稳定性

在 SAP 官方的 RAP100 实践教程中,一套 Travel 应用从自定义数据库表开始,经过数据模型、行为定义、服务定义和服务绑定,最终可以在 SAP Fiori elements 中预览。我们仍然使用熟悉的 ABAP 编写代码,仍然处理业务数据,仍然需要计算金额、校验日期和维护状态。不过,进入这套…

2026/10/18 15:17:00 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →