当前位置: 首页 > news >正文

SBTI 人格测试源码分析:一个完整的纯前端心理测试项目(附源码)

SBTI 人格测试源码分析:一个完整的纯前端心理测试项目

项目来源:52IIS 在线工具箱作者整理开源
开源地址:https://github.com/52IIS/52IIS_Tools/tree/main/public/SBTI
52IIS部署:https://www.52iis.com/SBTI/index.html

最近看到一个有趣的开源项目 —— SBTI 人格测试。这是一个纯前端实现的互动式心理测试工具,包含完整的题库、多维度评分、人格匹配算法和结果展示。本文从技术角度分析这个项目的代码结构、核心逻辑和可学习之处。

一、项目概述

这是一个静态 HTML/CSS/JS 项目,无需后端、无需数据库,部署在任何 Web 服务器上即可运行。项目实现了:

  • 多题互动测试界面
  • 15 维度评分体系
  • 基于模式匹配的人格类型判定
  • 条件触发(如饮酒倾向检测)
  • 详细的维度解读和结果展示

二、技术栈

部分技术选型说明
结构HTML5语义化标签
样式CSS3原生 CSS,无框架
交互原生 JavaScript无依赖,体积小
部署静态托管GitHub Pages / Vercel 等均可

三、核心代码结构

1. 数据层:题库与维度定义

// 维度元数据constdimensionMeta={S1:{name:'S1 自尊自信',model:'自我模型'},S2:{name:'S2 自我清晰度',model:'自我模型'},// ... 共 15 个维度};// 题目结构constquestions=[{id:'q1',dim:'S1',// 关联维度text:'题目内容...',options:[{label:'选项A',value:1},{label:'选项B',value:2},{label:'选项C',value:3}]}];

2. 逻辑层:评分与人格匹配

// 分数转等级functionsumToLevel(score){if(score<=3)return'L';if(score===4)return'M';return'H';}// 人格模式匹配(基于 15 维向量)constTYPE_LIBRARY={"CTRL":{code:"CTRL",cn:"拿捏者",desc:"..."},// ... 共 28 种人格};// 计算用户向量与各人格的距离,取最近匹配

3. 视图层:动态渲染

renderQuestions():动态生成题目列表

renderResult():展示测试结果、维度评分

4. 特殊逻辑:条件触发

// 饮酒相关问题触发隐藏人格if(app.answers['drink_gate_q2']===2){finalType=TYPE_LIBRARY.DRUNK;// 酒鬼人格}

四、项目亮点

完全前端化
不需要后端,降低了部署和维护成本。

可配置的数据结构
题库、维度、人格库都是纯 JS 对象,便于修改和扩展。

向量匹配算法
将 15 维的 L/M/H 等级转化为数值向量,通过距离计算找到最匹配人格。

条件分支
支持题目之间的依赖关系(如饮酒问题触发隐藏结果)。

响应式设计
CSS 适配移动端和桌面端。

五、本地运行与二次开发

# 克隆项目gitclone https://github.com/52IIS/52IIS_Tools.git# 进入目录cd52IIS_Tools/public/SBTI# 用任意静态服务器运行(如 VS Code Live Server)

可以修改的内容:

题库文案(questions 数组)

人格类型与描述(TYPE_LIBRARY)

维度解读(DIM_EXPLANATIONS)

样式(CSS 变量在 :root 中)

六、适合的学习场景

前端初学者:学习原生 JS 操作 DOM、事件监听、动态渲染

想做互动测试工具的人:参考题库结构和结果匹配逻辑

静态页面爱好者:了解如何做一个完整的多页面交互应用

七、开源信息

原作者:B站 @蛆肉肉串儿(UID417038183)

整理开源:52IIS 在线工具箱作者

开源协议:宽松协议,可学习修改

开源地址:https://github.com/52IIS/52IIS_Tools/tree/main/public/SBTI

如果觉得这个项目对你有帮助,可以 Star 支持一下原作者。

http://www.jsqmd.com/news/649141/

相关文章:

  • Camera Shakify:为你的Blender动画添加真实相机抖动的终极指南
  • 富文本编辑器清空操作引发的路径错误解析:Uncaught (in promise) Error排查实录
  • 如何在5分钟内实现LaTeX公式到Word的无缝转换?LaTeX2Word-Equation终极指南
  • 有实力的AI智能获客公司盘点,为你揭秘如何选择靠谱伙伴 - 工业品牌热点
  • mysql存储引擎性能基准测试_InnoDB与MyISAM对比指南
  • 梳理有实力的家装、工装企业,推荐几家靠谱且价格合理的 - 工业推荐榜
  • TVA时代企业IT工程师的新使命(系列之四)
  • Meshlab新手必看:STL模型中心化与Poisson采样点云化完整流程
  • 你的浏览器也能轻松聊微信:wechat-need-web插件完全指南
  • DLSS Swapper终极指南:如何快速管理DLSS文件提升游戏性能
  • XUnity自动翻译器完整指南:3步实现Unity游戏无障碍汉化体验
  • Windows内核驱动中的派遣函数
  • 如何解决多平台DLSS版本管理难题:DLSS Swapper的技术实现解析
  • 探寻比较不错的家庭装修、全屋整装企业,靠谱的有哪几家 - myqiye
  • 质检主管的自述:职业天花板的叹息,难道只是永远的低声下气?
  • 手写一个简易版的 HTTP 服务器(C++ 实现)
  • 花了两天,让Trae,给我用魔珐星云数字人写了个项目!
  • 盘点2026年口碑好的便携式磁粉探伤机工厂,怎么选择不吃亏 - mypinpai
  • DeerFlow进阶教程:集成MCP服务,扩展你的AI助理工具箱
  • 语音识别效果惊艳:Speech Seaco Paraformer真实案例分享
  • ClamAV实战指南:从安装到病毒检测的完整流程
  • 突破《原神》60FPS限制:从卡顿到流畅的完整实战指南
  • 从Labelme标注到模型部署:手把手教你用MMSegmentation训练自己的铁路场景分割模型
  • TranslucentTB:让你的Windows任务栏焕然一新的终极美化神器
  • Audio Pixel Studio实操手册:TTS生成语音+UVR5分离伴奏再合成新曲目
  • 2026腾丰同步带轮能否信任,生产工艺和客户满意度情况揭秘 - 工业品网
  • 基于PyTorch 2.8与SpringBoot构建AI微服务:模型部署与接口封装实战
  • 043、连续文本嵌入空间与rounding技巧:从离散token到连续向量的实战突围
  • ZeroTermux宝塔面板部署实战:从环境修复到Nginx/PHP服务调优
  • 记忆与上下文管理:短期会话、长期记忆与检索边界怎么设计(含分层策略与实现要点)