我试图通过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,但是没有做到这一点。
我有什么想法可以做到这一点?
谢谢!
答案 0 :(得分:2)
也许你可以设置一个变量来控制初始运行和其余的运行。像这样:
var initial = true;
window.addEventListener('deviceorientation', deviceOrientation(event) {
if (initial) {
alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
initial = false;
}
});
可能不是最好的解决方案,但是我现在能想到的最快的解决方案。
答案 1 :(得分:2)
让听众自行删除会更好。
database
通过这种方式,您不会因为您不关心的事件而被召唤。有些库有一个名为function deviceOrientation(event) {
alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
window.removeEventListener('deviceorientation', deviceOrientation);
}
window.addEventListener('deviceorientation', deviceOrientation);
的函数,它在第一个事件发生后删除事件监听器。