我正在尝试基于HTML5 DeviceOrientation事件倾斜图像。但是,我看到即使设备稳定(即不旋转/不移动),事件也会持续触发。在以下代码片段中,控制台日志将连续打印。可能的原因是什么,我该如何制止它。
我尝试捕捉和冒泡,
if (window.DeviceOrientationEvent) {
window.addEventListener('deviceorientation', function(eventData) {
var tiltLR = eventData.gamma;
console.log("tiltLR..........",tiltLR);
}, false);
}
最佳答案
我之前不需要使用这种类型的事件侦听器,所以我对输出不熟悉。
但是,我相信您需要将旧倾斜度与新倾斜度进行比较。如果新的倾斜度实质上更大或更小,则执行代码。
if (window.DeviceOrientationEvent) {
var originalTilt = undefined,
tolerance = 5;
window.addEventListener('deviceorientation', function(eventData) {
if (eventData.gamma > originalTilt + tolerance ||
eventData.gamma < originalTilt - tolerance){
var tiltLR = eventData.gamma;
console.log("tiltLR..........",tiltLR);
originalTilt = tiltLR;
}
}, false);
}