100个问题,3秒出分:极简无广告版「莱斯纯度测试」开源实现解析
你可能听说过「莱斯纯度测试(Rice Purity Test)」——它不是考试,也不是人生KPI,而是源自美国莱斯大学(Rice University)的一份100题怀旧清单。
你勾选自己“经历过”的事,系统自动算出你的「纯度分数」:
分数 = 100 − 已勾选项数
✅ 勾得越少 → 分数越高 → “越纯”(比如没谈过恋爱、没喝过酒、没逃过课…)
✅ 勾得越多 → 分数越低 → “越野”(生活经验丰富,故事很多 😎)
听起来像玩笑?但它真实存在了近50年,是无数大学生毕业前的集体回忆。
但现实很骨感:网上搜到的版本,不是满屏弹窗广告,就是UI混乱、加载慢、手机点不动……
于是,开发者提米哥决定:重写一个真正给开发者和普通人用的干净版本——不加戏、不营销、不追踪,就干一件事:
👉 快速、安静、准确地帮你算出那个数字。
它为什么“真干净”?(技术侧重点)
- ✅ 零第三方脚本:没有 Google Analytics、没有 Facebook Pixel、没有埋点SDK
- ✅ 全静态部署:HTML + CSS + 原生 JS,无框架(不用 React/Vue),打开即用
- ✅ 离线可用:下载 HTML 文件后,关掉网络也能答题、计算、看结果
- ✅ 响应式优先:手机横屏/竖屏、平板、MacBook 都能舒服操作
核心逻辑?其实就12行 JavaScript(已加中文注释)
<!-- 这段代码直接嵌在页面 <script> 标签里,无依赖 -->
<script>
function calculateScore() {
// 1. 找到所有被勾选的复选框(name="q")
const checkedItems = document.querySelectorAll('input[name="q"]:checked');
// 2. 统计勾选数量
const count = checkedItems.length;
// 3. 计算纯度分:100 减去勾选数
const score = 100 - count;
// 4. 把分数写进页面中 id="result" 的元素里
document.getElementById('result').textContent = score;
// 5. 根据分数区间,显示一句轻松的小解读(非评判,纯彩蛋)
const desc = score >= 90 ? '清澈如初' :
score >= 70 ? '微风拂面' :
score >= 50 ? '烟火人间' : '故事集已满';
document.getElementById('desc').textContent = desc;
}
</script>
💡 看懂了吗?没有 API 请求、没有后端、不传数据——所有逻辑在浏览器里当场完成。
这就是「前端极简主义」的实战范例:用最少的代码,解决最具体的问题。
你能学到什么?(开发者视角)
- 如何用原生 JS 替代框架做表单交互(省包、提速、降维护成本)
- 怎么设计「语义化+无障碍友好」的复选框结构(每个
<input>都配<label>) - 移动端 touch 优化小技巧(比如
cursor: pointer+min-height: 44px防误触) - 静态站点如何自带 FAQ 和上下文说明(纯 HTML/CSS 实现,无需 CMS)
✅ 想立刻试试?
👉 https://ricepurityscore.org
(友情提示:测完可以截图分享,但别当真——它只是时光的温柔快照,不是人生评分卡 🌟)