在页面加载时使用设备方向
Using Device Orientation on page load
我正在尝试通过 deviceorientation 事件获取 alpha、beta 和 gamma 坐标。
我的代码:
window.addEventListener('deviceorientation', function(event) {
alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
});
JS Fiddle: https://jsfiddle.net/myL17nzt/
这对于在设备移动时不断获取坐标非常有用,但我只想在页面加载时获取坐标,而不是让它监听移动。我尝试将 window.addEventListener 更改为 window.onload,但这并没有奏效。
有什么办法可以做到这一点吗?
谢谢!
也许你可以设置一个变量来控制初始 运行 和其余的。像这样:
var initial = true;
window.addEventListener('deviceorientation', deviceOrientation(event) {
if (initial) {
alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
initial = false;
}
});
可能不是最好的解决方案,但我现在能想到的最快的解决方案。
最好让侦听器自己移除。
function deviceOrientation(event) {
alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
window.removeEventListener('deviceorientation', deviceOrientation);
}
window.addEventListener('deviceorientation', deviceOrientation);
这样您就不会为您不关心的事件调用它。一些库有一个名为 once
的函数,它会在第一次事件发生后删除事件侦听器。
我正在尝试通过 deviceorientation 事件获取 alpha、beta 和 gamma 坐标。
我的代码:
window.addEventListener('deviceorientation', function(event) {
alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
});
JS Fiddle: https://jsfiddle.net/myL17nzt/
这对于在设备移动时不断获取坐标非常有用,但我只想在页面加载时获取坐标,而不是让它监听移动。我尝试将 window.addEventListener 更改为 window.onload,但这并没有奏效。
有什么办法可以做到这一点吗?
谢谢!
也许你可以设置一个变量来控制初始 运行 和其余的。像这样:
var initial = true;
window.addEventListener('deviceorientation', deviceOrientation(event) {
if (initial) {
alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
initial = false;
}
});
可能不是最好的解决方案,但我现在能想到的最快的解决方案。
最好让侦听器自己移除。
function deviceOrientation(event) {
alert(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
window.removeEventListener('deviceorientation', deviceOrientation);
}
window.addEventListener('deviceorientation', deviceOrientation);
这样您就不会为您不关心的事件调用它。一些库有一个名为 once
的函数,它会在第一次事件发生后删除事件侦听器。