在页面加载时使用设备方向

时间:2015-11-01 23:18:22

标签: javascript device-orientation

我试图通过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 个答案:

答案 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); 的函数,它在第一个事件发生后删除事件监听器。