tsParticles Colored Smoke Rainbow 调色板:安装、配置与源码机制解析

发布时间:2026/9/17 23:46:06

tsParticles Colored Smoke Rainbow 调色板:安装、配置与源码机制解析 tsParticles Colored Smoke Rainbow 调色板安装、配置与源码机制解析【免费下载链接】tsparticlestsParticles - Easily create highly customizable JavaScript particles effects, confetti explosions and fireworks animations and use them as animated backgrounds for your website. Ready to use components available for React.js, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Inferno, Solid, Riot and Web Components.项目地址: https://gitcode.com/GitHub_Trending/ts/tsparticles本指南围绕 tsParticles 官方调色板tsparticles/palette-colored-smoke-rainbowColored Smoke – Rainbow展开介绍如何通过 CDN 或 npm 快速接入这组彩虹色烟雾配色并在粒子配置中通过palette: coloredSmokeRainbow一键应用。文中同时深入解读该调色板在tsparticles/engine中的注册与加载机制IPalette、PluginManager、Options.#importPalette帮助读者理解调色板只定义颜色、不定义行为的设计边界并掌握覆盖默认配色的扩展方法。tsParticles Colored Smoke Rainbow 调色板粒子效果示例一、什么是 Colored Smoke Rainbow 调色板Colored Smoke Rainbow 是 tsParticles 众多官方调色板palette之一位于仓库的 palettes/atmosphere/coloredSmokeRainbow 目录下。它的定位非常明确只提供一组颜色定义不包含任何粒子行为逻辑——即文档中所强调的 A palette defines colors, not complete behavior, so pair it with a runtime package and particle options。调色板本身是一份标准的IPalette结构描述其完整定义记录在 engine/src/Core/Interfaces/IPalette.ts字段类型说明namestring调色板名称用于标识backgroundstring画布背景色blendModeGlobalCompositeOperation画布合成混合模式colorsSingleOrMultipleIPaletteColors颜色集合可含fill填充与stroke描边两组配置其中IPaletteColorsFill支持enable开关、opacity不透明度可为范围值与value单个或多个颜色值IPaletteColorsStroke额外包含width描边宽度。Colored Smoke Rainbow 只使用了fill分支。二、颜色组成七色虹彩 黑色背景在 src/options.ts 中可以看到该调色板的真实定义名称为Colored Smoke - Rainbow背景色为#050505混合模式为source-over填充色开启共 7 种颜色。对应文档中的颜色表如下颜色值说明#CC0000红#CC6600橙#CCCC00黄#00CC00绿#0000CC蓝#6600CC靛紫#CC00CC品红#050505背景色Backgroundsource-over混合模式Blend mode且Fill: true注意这 7 种颜色在源码中以数组形式保存在colors.fill.value中粒子在渲染时会从该颜色池中取值因此画面呈现出红、橙、黄、绿、蓝、紫交错的彩虹效果。三、快速上手三步接入清单官方文档给出的快速检查清单Quick checklist如下三步即可完成接入安装运行时基础包安装tsparticles/engine或直接使用下方 CDN 全量 bundle加载基础功能包并注册调色板例如加载tsparticles/basic并在tsParticles.load(...)之前调用loadColoredSmokeRainbowPalette(engine)在配置中应用调色板在 options 中设置palette: coloredSmokeRainbow并搭配一份最简粒子配置。需要特别强调的是调色板只负责颜色从哪里来粒子的数量、形状、大小、运动等行为仍由你自行配置这也是palette defines colors, not complete behavior的含义。四、CDN / Vanilla JS / jQuery 使用方式如果项目通过script标签直接引入纯 HTML、Vanilla JS 或 jQuery按文档指引引入两个脚本即可script srchttps://cdn.jsdelivr.net/npm/tsparticles/basic4/tsparticles.basic.bundle.min.js/script script srchttps://cdn.jsdelivr.net/npm/tsparticles/palette-coloredSmokeRainbow4/tsparticles.palette-coloredSmokeAmber.min.js/script脚本加载完成后即可用如下方式初始化tsParticles(async engine { await loadBasic(engine); await loadColoredSmokeRainbowPalette(engine); const options { particles: { number: { value: 200 }, shape: { type: circle }, size: { value: { min: 10, max: 15 } }, move: { enable: true, speed: 2, }, }, palette: coloredSmokeRainbow, }; await engine.load({ id: tsparticles, options, }); })(tsParticles);这份最小配置中number.value: 200控制粒子总数shape.type: circle指定圆形粒子size.value: { min: 10, max: 15 }让粒子尺寸在 1015 之间随机move.speed: 2设定匀速漂移速度palette: coloredSmokeRainbow是应用调色板的关键键引擎会根据该名称查找已注册的调色板并自动套用背景色、混合模式与颜色池。五、npm 模块化安装与 Lazy 加载在模块化工程中推荐直接安装 npm 包。从 package.json 可以看到该包的正式名称为tsparticles/palette-colored-smoke-rainbow当前仓库内版本为 4.3.3其exports同时暴露了标准入口与./lazy入口npm install tsparticles/engine tsparticles/basic tsparticles/palette-colored-smoke-rainbowESM 使用方式import { tsParticles } from tsparticles/engine; import { loadBasic } from tsparticles/basic; import { loadColoredSmokeRainbowPalette } from tsparticles/palette-colored-smoke-rainbow; await loadBasic(tsParticles); await loadColoredSmokeRainbowPalette(tsParticles);如果希望把调色板定义延迟到运行时按需加载可以改用tsparticles/palette-colored-smoke-rainbow/lazy入口。从 src/index.lazy.ts 的实现可以看出lazy 版本会在注册回调内通过await import(./options.js)动态加载颜色定义从而减小首屏包体。六、源码解析调色板是如何注册与生效的6.1 注册入口loadColoredSmokeRainbowPalette标准入口 src/index.ts 的实现非常简洁const paletteName colored-smoke-rainbow; export async function loadColoredSmokeRainbowPalette(engine: Engine): Promisevoid { await engine.pluginManager.register(e { e.pluginManager.addPalette(paletteName, options); }); }它通过engine.pluginManager.register(...)将调色板以colored-smoke-rainbow为键注册进插件管理器。而浏览器环境下src/browser.ts 会把该函数挂到globalThis.loadColoredSmokeRainbowPalette上这就是 CDN 场景下可以直接调用它的原因。6.2 存储与查询PluginManager在引擎的 PluginManager 中调色板被存储在一个Mapstring, IPalette中第 58 行readonly palettes。两个核心方法addPalette(name, palette)第 163 行将调色板写入 MapgetPalette(name)第 247 行按名称取出调色板。6.3 配置解析Options.#importPalette当你在 options 中写下palette: coloredSmokeRainbow时引擎的 Options 类 会调用#importPalette(palette)其内部逻辑为通过pluginManager.getPalette(palette)查找调色板找不到则直接返回找到后把paletteData.background应用到background.color把paletteData.blendMode应用到blend.mode并开启blend.enable将particles.palette指向该调色板名称供粒子取色使用。可以看到调色板机制本质上是配置注入背景色、混合模式、颜色池三项被自动合并进你的粒子选项无需手工逐一填写。七、自定义与扩展调色板只是起点。官方文档明确指出所有 options 都可以像标准 tsParticles 安装那样通过定义对应属性来覆盖override。例如你可以在使用调色板的同时自行覆盖粒子数量、形状、运动轨迹甚至手动指定particles.color来局部替换取色逻辑const options { particles: { number: { value: 300 }, shape: { type: star }, // 覆盖形状 size: { value: { min: 5, max: 20 } }, move: { enable: true, speed: 3, direction: top, // 改为向上飘动模拟烟雾升腾 }, }, palette: coloredSmokeRainbow, // 颜色仍来自调色板 };如果需要全新的配色也可以仿照 src/options.ts 的结构自行构造IPalette对象并通过engine.pluginManager.addPalette(自定义名称, 自定义调色板)注册从而完全掌控背景色、混合模式与颜色池。八、框架组件集成在 React、Vue 2/3、Angular、Svelte、jQuery、Preact、Inferno、Solid、Riot 与 Web Components 等框架中tsParticles 均有对应的组件库。集成方式与原生场景一致在对应组件库的文档指引下调用loadColoredSmokeRainbowPalette函数完成注册然后在组件的 options 中设置palette: coloredSmokeRainbow即可。仓库中 wrappers 目录下保存了各框架组件的实现源码可作为集成时的参考。九、相关资源与进一步探索调色板包源码palettes/atmosphere/coloredSmokeRainbow含src/options.ts、src/index.ts、src/index.lazy.ts、src/browser.ts调色板类型定义engine/src/Core/Interfaces/IPalette.ts调色板注册与查询engine/src/Core/Utils/PluginManager.ts调色板配置注入逻辑engine/src/Options/Classes/Options.ts#L142-L161更多预设与调色板仓库根目录下的 presets 与 palettes 目录收录了全部官方配色与预设例如palettes/atmosphere下还有fire、water、space等不同主题的同系列调色板可对照阅读。【免费下载链接】tsparticlestsParticles - Easily create highly customizable JavaScript particles effects, confetti explosions and fireworks animations and use them as animated backgrounds for your website. Ready to use components available for React.js, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Inferno, Solid, Riot and Web Components.项目地址: https://gitcode.com/GitHub_Trending/ts/tsparticles创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/17 23:41:06

智慧体育场馆信息化整体建设:架构设计与系统集成实践

简介:面向智慧体育场馆建设与升级的完整信息化解决方案(49页演示文稿),适合体育场馆运营方、弱电与音视频系统集成商、赛事保障及方案设计人员,重点解决场馆音视频系统分散、赛事指挥调度不畅、多系统融合难等实际问题…

2026/9/17 23:41:06

VS Code 中 JS/TS 语言服务反复崩溃?Volar 插件的排查与修复指南

下午正写着一个 Vue 3 组件,VS Code 右下角突然弹出一条红色错误:**“JS/TS 语言服务已立即崩溃 5 次。不会重新启动该服务。这可能是由以下其中一个扩展提供的插件引起的: Vue.volar。”**那一瞬间,语法高亮还在,但自动补全、跳转…

2026/9/18 0:46:11

数据库两表比对:NOT EXISTS、JOIN、EXCEPT与NULL陷阱

两表数据比对这件事,写起来简单,真上手才知道坑不少。前阵子帮朋友收拾一个数据库课程设计的收尾工作,两张结构完全一样的订单表——一张是源库导出的快照,一张是同步工具写进来的目标表,跑完对完总行数严丝合缝&#…

2026/9/18 0:46:11

古文学生僻字绝版合集.doc方框乱码:OLE2解析与Unicode建库

简介:《古文学生僻字绝版合集》是一份面向古文爱好者、中文系学生、语文教师及传统文化研习者的生僻字速查文档,针对阅读《楚辞》等先秦两汉文献时字音不明、字义难解、语境隔膜的问题,按字条整理注音、释义与用例,便于随身查阅和…

2026/9/18 0:46:11

MySQL concat()函数详解:字符串拼接的用法、NULL处理与性能优化

1. concat()函数是什么,为什么大家都在用做MySQL开发的人,几乎每天都会碰到这种需求:把几个字段拼成一个字段输出。比如用户表里last_name和first_name分开存,前端要显示完整姓名;订单表里省份、城市、详细地址分开存&…

2026/9/18 0:41:11

Go应用安全实践:从SQL注入到并发竞态的漏洞防护指南

上周给一个 Go 写的内部管理后台做安全评审,二十多个接口里翻出七个有 SQL 拼接,其中一个还带着fmt.Sprintf拼LIMIT后的数字。另一个用 Go 写的消息推送服务更惨,因为用了exec.Command("sh", "-c", ...)拼外部命令&#…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/18 0:01:09

Google Colab 实战:运行模型、数据加载与报错排查

1. 为什么我劝你先搞懂 Colab 的运行模型1.1 Colab 到底是什么,跟本地跑代码差在哪Google Colab 简单说就是一台跑在浏览器里的 Linux 虚拟机,你打开一个 Notebook,背后就连上了一台带 GPU 的远程机器。你在单元格里敲的每一行 Python&#x…

2026/9/18 0:01:09

C语言数据类型与表达式详解

1. C语言数据与数据类型概述在C语言编程中,数据是程序处理的核心对象。理解数据的分类和特性是掌握C语言的基础。C语言中的数据主要分为四大类:常量、变量、表达式和函数。这些数据类型构成了C语言程序的基本元素,每种类型都有其独特的特性和…

2026/9/18 0:01:09

SQL时间字段指定时间段查询:区间语义、索引与时区避坑

上周排查一个线上问题&#xff0c;用户反馈"昨天的订单一条都没查到"&#xff0c;但数据库里明明躺着两千多条。最后定位下来&#xff0c;不是数据丢了&#xff0c;也不是接口挂了&#xff0c;而是那个查询条件把时间段写成了> 2024-05-20 00:00:00 AND < 2024…

2026/9/16 22:55:57

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/16 22:56:09

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/16 22:56:16

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码