大家好,我是 SeanWong17。
作为一名前端开发者,我们经常会接触到各种各样的数据可视化项目。但你有没有想过,把我们在中学时代死记硬背的化学元素周期表,用前端技术做成一个充满赛博朋克风、还能 360 度旋转看电子排布的 3D 交互网站?
今天给大家分享一个我最近开源的个人项目:Future-Style-Periodic-Table。
它不仅拥有极具未来感的 UI 设计,而且主打一个返璞归真——0 构建依赖,纯原生 HTML/CSS/JS 实现! 开箱即用,双击 index.html 就能跑!
🔗 GitHub 源码地址:github.com/SeanWong17/… (走过路过求个 Star ⭐!)
🌍 在线沉浸式体验:点击这里直达 Live Demo
✨ 为什么要做这个项目?
传统的元素周期表大多是静态图片或者简单的表格,枯燥且缺乏交互。我想用前端的魔法,让这 118 种构成宇宙的基础元素“活”起来。
不管你是想拿来做化学科普、给家里的小孩演示,还是单纯想研究一下纯原生前端的 CSS 3D 动效和数据驱动渲染,这个项目都能给你带来一点启发。
🚀 核心亮点与效果展示
1. 🎨 赛博朋克美学与沉浸式交互
深色背景搭配动态网格粒子,结合玻璃拟态(Glassmorphism)和霓虹发光边框。鼠标悬停在不同分类的元素上时,会有专属的霓虹流转效果,科技感拉满。
(👇 周期表总览效果)
2. 🔬 硬核的 3D 原子结构模拟
这是本项目最酷的功能!点击任意元素,会弹出一个沉浸式的详情卡片,右侧是一个纯 CSS 3D 实现的原子轨道模型。
- 基于真实的电子排布算法渲染电子层。
- 支持鼠标拖拽 / 触屏滑动,360° 无死角旋转观察。
- 支持全屏独立放大视图,用滚轮缩放查看电子云细节!
(👇 3D 原子模型与详情卡片。注:如果在掘金发文,强烈建议在这里自己录制一张鼠标拖拽 3D 旋转的 GIF 动图替换这张静态图,视觉冲击力会强 10 倍!)
3. 📊 多维度数据热力图可视化
不只是好看,它还很实用。支持一键切换原子半径、电负性、电离能、熔点、沸点的热力图(Heatmap)分布。哪种元素最容易失去电子?哪个元素熔点最高?一目了然。
(👇 热力图模式切换)
4. 🌍 国际化与全端适配
- 双语支持:一键切换中文/英文界面。
- 响应式设计:从 4K 桌面大屏到移动端手机,使用媒体查询做了优雅的布局表现。
🛠️ 技术实现剖析(纯原生党福音)
在这个满天飞着 React、Vue、打包工具的时代,我选择了 Vanilla JavaScript (ES6+)。
为什么?因为极致的轻量和便携。
- HTML5:负责语义化结构与 DOM 容器。
- CSS3:
- CSS Grid:精确绘制了非规则的周期表网格布局(中间镂空的部分用 Grid 实现非常优雅)。
- CSS 3D Transforms:核心 3D 效果。利用
transform-style: preserve-3d配合 CSS 动画,实现了电子轨道的立体旋转,性能非常丝滑。 - CSS Variables:全站的主题颜色统一管理,霓虹效果切换自如。
- JavaScript:
- 零框架实现数据驱动渲染。
- 内置了核外电子排布算法,动态计算并生成 DOM,事件委托处理交互。
目录结构也非常清爽:
Future-Style-Periodic-Table/
├── data.js # 核心配置数据
├── elements-full-data.js # 完整 118 种元素属性字典
├── index.html # 入口文件
├── main.js # 核心交互逻辑
└── styles.css # 样式与 3D 动效
你只需要 Clone 下来,双击 index.html,没有任何 npm install 的烦恼!
🤝 写在最后
目前项目已经在 GitHub 上获得了 400+ Stars,感谢社区小伙伴(特别是参与多语言贡献的开发者)的支持。
如果你觉得这个项目还不错,或者对你的 CSS 3D 学习、数据可视化有所帮助,欢迎到 GitHub 上帮我点个 Star ⭐!这也是对我这种用爱发电的开源作者最大的鼓励!
🔗 GitHub 地址:SeanWong17/Future-Style-Periodic-Table
如果你对代码实现有任何疑问,或者有更有趣的脑洞,欢迎在评论区和我交流!对于代码里的 CSS 3D 实现细节,如果大家感兴趣,我后续可以单独开一篇文章详细拆解教程。
感谢阅读!