首页 >web前端 >css教程 >我可以开车吗?编写酒精测试仪代码

我可以开车吗?编写酒精测试仪代码

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-10 21:01:03966浏览

在我居住的丹麦,不幸的是,我们在欧洲保持着一项记录:我们的孩子是欧洲大陆饮酒最多的人。正因为如此,人们非常关注减少青少年饮酒量并教育孩子们了解酒精的影响。

我为当地学校编写了一个 HTML 和 JavaScript 酒精计算器,向学生展示酒精如何影响身体以及如何计算血液酒精含量 (BAC)。

BAC是如何计算的?

要估算 BAC 或“promille”,您需要一些关键信息:

  • 您的体重 – 因为较大的身体比较小的身体更能稀释酒精。
  • 生物性别 – 由于体内水分含量不同,从而影响酒精在体内的分布。
  • 消耗的酒精单位数 – 因为每种饮料都有不同的酒精浓度。

计算酒精单位

不同的饮料会向您的血液贡献不同量的酒精,具体取决于其体积和酒精浓度。为了标准化,酒精的单位计算通常如下:

volume (cl) * alcohol percentage * 0.8 / 120

结构

整个“应用程序”的结构是一个

;具有有组织的字段集和命名控件,可以轻松地使用以下方式提取必要的元素:
const { add, addbeverage, etc. } = app.elements;

由于BAC限制因地区而异,我们需要首先选择地区,调整体重滑块,并选择生物性别:

Can I Drive? Coding an Alcohol Tester


接下来,我们可以开始添加饮料了:

Can I Drive? Coding an Alcohol Tester

这是一个简单的

,其中单位、体积和酒精百分比的各个字段均被禁用(并通过 CSS 隐藏),直到您从饮料选择器中进行选择:

Can I Drive? Coding an Alcohol Tester

这些字段的可见性由enableElements函数控制:

[percentage, units, volume].forEach(el => el.disabled = !bool);

当我们添加饮料时,会创建一份消耗饮料列表,并计算 BAC、预计醒酒时间等:

Can I Drive? Coding an Alcohol Tester

然后您可以继续添加更多饮料,BAC 也会相应更新:

Can I Drive? Coding an Alcohol Tester

令我非常惊讶的是,美国的合法BAC是瑞典或挪威的四倍!

换句话说,在瑞典,您可能吊销执照,因为饮酒量达到了美国法律允许的量


分解 BAC 计算

BAC的核心计算在calculateAnswer函数中处理:

volume (cl) * alcohol percentage * 0.8 / 120

让我们来分解一下:

  1. 酒精代谢率:alcoholMetabolismRate = 0.015

    • 该值代表身体每小时减少 BAC 的平均速率(约 0.015%)。
  2. 计算当前 BAC: currentBAC = ((total * 10) / ((weight.valueAsNumber * 1000) * parseFloat(bodywater.value))) * 100

    • 总计 * 10:这会将消耗的总酒精单位转换为克(因为 1 个单位约等于 10 克纯酒精)。
    • weight.valueAsNumber * 1000:将体重从公斤转换为克以供计算。
    • bodywater.value:基于生物性别的小数因子,影响酒精在体内的分布(例如,男性为 0.58,女性为 0.49)。
    • 然后将结果乘以 100,将 BAC 转换为百分比。
  3. 估计清醒时间:hoursToSober = (currentBAC / alcoholMetabolismRate).toFixed(1);

    • 将当前 BAC 除以新陈代谢率即可估算 BAC 达到零所需的时间。
  4. 判断合法驾驶状态: canDrive = currentBAC

    • 将当前 BAC 与选定的法定 BAC 限值进行比较。如果当前BAC在限制范围内,则认为用户“适合驾驶”;否则,他们就不是。

calculateAnswer 函数然后将这些值组合成一条消息,显示当前的 BAC、清醒前的小时数以及用户是否适合驾驶。


…本教程就到此结束。如果您愿意,可以随意尝试 CodePen——也许可以创建一个对儿童更友好的用户体验。请记住,该工具提供了估计值,但没有考虑您饮用每种饮料的时间等因素。请记住,它很可能会被清醒的人使用!


演示


封面由DALL·E,提示:以类似于早期迪士尼和茶杯头的卡通风格生成一辆醉车,作为图像我可以裁剪到1000x420px。

以上是我可以开车吗?编写酒精测试仪代码的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn