To estimate your fat-burning heart rate zone, we use the Karvonen formula, which takes into account your resting heart rate. This zone is generally considered to be between 60% and 70% of your maximum heart rate.
function calculateFatBurningHeartRate() {
var age = parseFloat(document.getElementById("age").value);
var restingHeartRate = parseFloat(document.getElementById("restingHeartRate").value);
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
if (isNaN(age) || isNaN(restingHeartRate) || age <= 0 || restingHeartRate <= 0) {
resultDiv.innerHTML = "Please enter valid positive numbers for age and resting heart rate.";
return;
}
// 1. Calculate Maximum Heart Rate (MHR) using a common formula
// MHR = 220 – Age
var maxHeartRate = 220 – age;
// 2. Calculate Heart Rate Reserve (HRR)
// HRR = MHR – Resting Heart Rate
var heartRateReserve = maxHeartRate – restingHeartRate;
// 3. Calculate the Fat Burning Zone (60% to 70% of HRR)
// Lower end of fat burning zone = (0.60 * HRR) + Resting Heart Rate
// Upper end of fat burning zone = (0.70 * HRR) + Resting Heart Rate
var fatBurningLower = Math.round((0.60 * heartRateReserve) + restingHeartRate);
var fatBurningUpper = Math.round((0.70 * heartRateReserve) + restingHeartRate);
// Ensure calculated heart rates are within reasonable bounds (e.g., not negative or excessively high)
fatBurningLower = Math.max(0, fatBurningLower);
fatBurningUpper = Math.max(0, fatBurningUpper);
fatBurningUpper = Math.min(220, fatBurningUpper); // Cap at MHR
resultDiv.innerHTML =
"Estimated Fat Burning Heart Rate Zone:" +
"Your Estimated Maximum Heart Rate: " + maxHeartRate.toFixed(0) + " bpm" +
"Your Heart Rate Reserve: " + heartRateReserve.toFixed(0) + " bpm" +
"Target Zone: " + fatBurningLower + " bpm – " + fatBurningUpper + " bpm";
}
#fatBurningCalculator {
font-family: sans-serif;
border: 1px solid #ccc;
padding: 20px;
border-radius: 8px;
max-width: 400px;
margin: 20px auto;
box-shadow: 2px 2px 10px rgba(0,0,0,0.1);
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input[type="number"] {
width: calc(100% – 22px); /* Adjust for padding and border */
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1em;
}
#fatBurningCalculator button {
background-color: #4CAF50;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 1em;
transition: background-color 0.3s ease;
}
#fatBurningCalculator button:hover {
background-color: #45a049;
}
#result {
margin-top: 20px;
padding: 15px;
background-color: #f9f9f9;
border: 1px solid #eee;
border-radius: 4px;
}
#result p {
margin-bottom: 10px;
line-height: 1.5;
}