作为程序员,没有合适的工具,就得手搓一个,PC端,移动端均可适用。废话不多说,直接上代码。
HTML:
<div class="calculator"><div class="input-group"><label for="age">输入您的年龄:</label> <input id="age" min="1" required="" type="number" placeholder="请输入年龄"></div><button onclick="calculateHeartRate()">计算心率</button><div id="result" class="result"></div></div>
JS:
function calculateHeartRate() {
const age = parseInt(document.getElementById("age").value);
const resultDiv = document.getElementById("result");
if (isNaN(age) || age <= 0) {
resultDiv.innerHTML = "请输入有效的年龄!";
return;
}
// 计算最大心率
const maxHeartRate = 220 - age;
// 不同心率区间
const lightMin = Math.round(maxHeartRate * 0.50);
const lightMax = Math.round(maxHeartRate * 0.60);
const fatBurnMin = Math.round(maxHeartRate * 0.60);
const fatBurnMax = Math.round(maxHeartRate * 0.70);
const aerobicMin = Math.round(maxHeartRate * 0.70);
const aerobicMax = Math.round(maxHeartRate * 0.80);
const anaerobicMin = Math.round(maxHeartRate * 0.80);
const anaerobicMax = Math.round(maxHeartRate * 0.90);
const maxMin = Math.round(maxHeartRate * 0.90);
const maxMax = maxHeartRate;
// 显示结果
resultDiv.innerHTML = `
<div>您的最大心率为:<strong>${maxHeartRate} 次/分钟</strong></div>
<div>心率区间:</div>
<div>轻度活动:<strong>${lightMin}-${lightMax} 次/分钟</strong></div>
<div>脂肪燃烧:<strong>${fatBurnMin}-${fatBurnMax} 次/分钟</strong></div>
<div>有氧耐力:<strong>${aerobicMin}-${aerobicMax} 次/分钟</strong></div>
<div>无氧耐力:<strong>${anaerobicMin}-${anaerobicMax} 次/分钟</strong></div>
<div>极限:<strong>${maxMin}-${maxMax} 次/分钟</strong></div>
`;
}
CSS:
.calculator {
width: 100%;
background-color: #333;
color: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}
label {
display: block;
margin-bottom: 10px;
font-size: 16px;
}
input, select {
width: 100%!important;
padding: 10px!important;
margin-bottom: 20px;
color: #000000;
border-radius: 5px;
border: 1px solid #555;
font-size: 16px!important;
background-color: #ffffff!important;
}
button {
width: 100%;
padding: 10px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
}
button:hover {
background-color: orange;
}
.result {
font-size: 18px;
margin-top: 20px;
text-align: center;
}
option {
background-color: #ffffff;
}
p {
font-size: 18px;
margin-top: 5px!important;
}