一位客户最近要求我在我们的网站上制作幻灯片。我担心主页上不断的动画图片过渡会与大多数移动设备的处理器挂钩,所以我想禁用自动前进以延长电池寿命。有没有办法在不尝试检测用户代理的情况下做到这一点?
我看到这里有一个电池状态API ,但我不知道它有多完整,也不知道哪些浏览器实现了它。
一位客户最近要求我在我们的网站上制作幻灯片。我担心主页上不断的动画图片过渡会与大多数移动设备的处理器挂钩,所以我想禁用自动前进以延长电池寿命。有没有办法在不尝试检测用户代理的情况下做到这一点?
我看到这里有一个电池状态API ,但我不知道它有多完整,也不知道哪些浏览器实现了它。
现在您可以使用此 API:http ://davidwalsh.name/javascript-battery-api
navigator.getBattery().then(function(result) {});
实际上确定电池会非常困难,并且可能涉及各种权限问题。
尝试只执行一小段代码并检查它所花费的时间。选择一个截止点,如果代码执行太慢,请关闭过渡/动画/自动前进。这不仅会捕获电池设备;任何太慢的东西都会得到非动画版本。优雅地降级。
另一个老话题,但仍然相关——我现在检查设备是否有运动传感器,笔记本电脑没有,但所有现代智能手机和平板电脑都有——所以笔记本电脑用户可以忍受更多的电池使用——
jQuery:
if (window.DeviceOrientationEvent) {
$(window).one("devicemotion", function(event) {
if (event.originalEvent.acceleration
&& event.originalEvent.acceleration.x !== null) { // Chrome fakes it on desktop
isMobile = true;
}
});
}
纯Javascript:
if (window.DeviceOrientationEvent) {
window.ondevicemotion = function(event) {
if (event.acceleration
&& event.acceleration.x !== null) { // Chrome fakes it on desktop
window.ondevicemotion = null;
isMobile = true;
}
};
}