Skip to content

Instantly share code, notes, and snippets.

@feiandxs
Created September 21, 2024 14:49
Show Gist options
  • Save feiandxs/9453433e4bcd32341cf9372faa2e0270 to your computer and use it in GitHub Desktop.
Save feiandxs/9453433e4bcd32341cf9372faa2e0270 to your computer and use it in GitHub Desktop.
js 获取电池状态.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>电池状态小工具</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f0f0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.widget {
background-color: #fff;
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
width: 300px;
}
h1 {
color: #333;
font-size: 18px;
margin-top: 0;
margin-bottom: 15px;
}
#battery-status {
font-size: 14px;
color: #666;
margin-bottom: 10px;
}
#battery-level {
width: 100%;
height: 20px;
background-color: #e0e0e0;
border-radius: 10px;
overflow: hidden;
}
#battery-fill {
height: 100%;
background-color: #4CAF50;
transition: width 0.5s ease-in-out;
}
</style>
</head>
<body>
<div class="widget">
<h1>电池状态小工具</h1>
<div id="battery-status">正在获取电池信息...</div>
<div id="battery-level">
<div id="battery-fill"></div>
</div>
</div>
<script>
const batteryStatus = document.getElementById('battery-status');
const batteryFill = document.getElementById('battery-fill');
if ('getBattery' in navigator) {
navigator.getBattery().then(battery => {
const updateBatteryStatus = () => {
const level = battery.level * 100;
const chargingStatus = battery.charging ? "充电中" : "未充电";
batteryStatus.textContent = `电量: ${level.toFixed(0)}% | ${chargingStatus}`;
batteryFill.style.width = `${level}%`;
batteryFill.style.backgroundColor = level > 20 ? '#4CAF50' : '#FF5722';
};
updateBatteryStatus();
battery.addEventListener('chargingchange', updateBatteryStatus);
battery.addEventListener('levelchange', updateBatteryStatus);
});
} else {
batteryStatus.textContent = '您的浏览器不支持电池状态API';
batteryFill.style.width = '100%';
batteryFill.style.backgroundColor = '#ccc';
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment