2015-11-01 19 views
2

我想通過deviceorientation事件獲取alpha,beta和gamma座標。在頁面加載時使用設備方向

我的代碼:

window.addEventListener('deviceorientation', function(event) { 
    alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma); 
}); 

JS小提琴:https://jsfiddle.net/myL17nzt/

這個偉大的工程,不斷搶座標設備移動,但我想只要抓住在頁面加載的座標,而不是使它傾聽運動。我嘗試將window.addEventListener更改爲window.onload,但這並沒有成功。

任何想法我可以做到這一點?

謝謝!

回答

2

讓聽衆自行移除會更好。

function deviceOrientation(event) { 
    alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma); 
    window.removeEventListener('deviceorientation', deviceOrientation); 
} 
window.addEventListener('deviceorientation', deviceOrientation); 

這樣你就沒有被稱爲你不關心的事件。某些庫有一個名爲once的函數,它在第一個事件發生後刪除事件偵聽器。

+0

謝謝!非常好的和有效的解決方案 – iabramo

+0

正是我在找的! – lowtechsun

2

也許你可以設置一個變量來控制初始運行和其他部分。像這樣的:

var initial = true;  
    window.addEventListener('deviceorientation', deviceOrientation(event) { 
    if (initial) { 
     alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma); 
     initial = false; 
    } 
    }); 

不是最好的解決方案,但我現在可以想到的最快的解決方案。

+0

謝謝!這很好用 – iabramo

相關問題