2012-03-06 105 views
2

一位客戶最近要求我在我們的網站上實施幻燈片。我擔心在主頁上不斷動畫的圖片轉換會掛住大多數移動設備的處理器,所以我想禁用自動前進以延長電池壽命。有沒有辦法做到這一點,而不嘗試檢測用戶代理?是否可以在javascript中檢測電池供電的設備?

我已經看到有一個電池狀態API起草here,但我不知道它是多麼完整,或者哪些瀏覽器已經實現它。

+0

從它的外觀來看,沒有多少瀏覽器支持它,因爲它只是在* November *中顯示。 – 2012-03-06 16:49:16

+0

執行強烈的數學運算可能會掛鉤處理器,但使用JavaScript對某些圖像進行動畫處理應該很好。我認爲你擔心錯誤的事情。 – j08691 2012-03-06 16:57:45

回答

2

實際上確定電池是相當困難的,可能涉及各種權限問題。

嘗試只執行一小段代碼並檢查花費的時間。選擇一箇中斷,如果代碼執行得太慢,請關閉轉換/動畫/自動遵從。這將不僅僅是電池設備。任何太慢都會得到非動畫版本。優雅地退化。

1

另一個老話題了,但仍然具有現實意義 - 我現在檢查設備是否有運動傳感器,而不是許多筆記本電腦做的,但所有的現代智能手機和平板電腦做 -

- 使筆記本電腦用戶可以用稍微電池使用Live

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; 
     } 
    }; 
} 
2

,現在您可以使用此API:http://davidwalsh.name/javascript-battery-api

navigator.getBattery().then(function(result) {}); 
+0

這本身並沒有揭示電池操作。所有桌面瀏覽器也將從該API返回電池管理器。你需要做的是檢測'!batteryManager.charging'狀態。 – 2015-04-08 20:22:45

相關問題