作为程序员,没有合适的工具,就得手搓一个,PC端,移动端均可适用。废话不多说,直接上代码。
HTML:
<div class="calculator">
<label for="inputValue">输入值:</label>
<input id="inputValue" type="number" placeholder="请输入数值">
<label for="inputUnit">选择输入单位:</label>
<select id="inputUnit">
<option value="joule">焦耳 (J)</option>
<option value="kilojoule">千焦 (kJ)</option>
<option value="calorie">卡路里 (cal)</option>
<option value="kilocalorie">千卡 (kcal)</option>
<option value="wattHour">瓦时 (Wh)</option>
<option value="kilowattHour">千瓦时 (kWh)</option>
<option value="btu">英热单位 (BTU)</option>
<option value="erg">尔格 (erg)</option>
</select>
<label for="outputUnit">选择输出单位:</label>
<select id="outputUnit">
<option value="joule">焦耳 (J)</option>
<option value="kilojoule">千焦 (kJ)</option>
<option value="calorie">卡路里 (cal)</option>
<option value="kilocalorie">千卡 (kcal)</option>
<option value="wattHour">瓦时 (Wh)</option>
<option value="kilowattHour">千瓦时 (kWh)</option>
<option value="btu">英热单位 (BTU)</option>
<option value="erg">尔格 (erg)</option>
</select>
<button onclick="convertEnergy()">计算</button>
<div class="result">
<p>转换结果:</p>
<p id="outputValue">0</p>
</div>
</div>
JS:
function convertEnergy() {
const inputValue = parseFloat(document.getElementById('inputValue').value);
const inputUnit = document.getElementById('inputUnit').value;
const outputUnit = document.getElementById('outputUnit').value;
if (isNaN(inputValue) || inputValue <= 0) {
alert('请输入有效的值');
return;
}
const conversionRates = {
joule: 1,
kilojoule: 0.001,
calorie: 0.239006,
kilocalorie: 0.000239006,
wattHour: 0.000277778,
kilowattHour: 2.7778e-7,
btu: 0.000947817,
erg: 1e7
};
const valueInJoules = inputValue / conversionRates[inputUnit];
const convertedValue = valueInJoules * conversionRates[outputUnit];
document.getElementById('outputValue').textContent = convertedValue.toFixed(4);
}
CSS:
.calculator {
width: 300px;
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 {
margin-top: 20px;
text-align: center;
}
option {
background-color: #ffffff;
}
p {
font-size: 18px;
margin-top: 5px!important;
}
线上运行,可以直接打开:功/能/热单位换算计算器