我正在尝试根据HTML5 DeviceOrientation事件倾斜图像。但是,我发现即使设备稳定,即非旋转/不移动,事件也会不断发射。在以下代码段中,将连续打印控制台日志。可能的原因是什么,我怎么能阻止它。
我尝试了捕捉和冒泡,
if (window.DeviceOrientationEvent) {
window.addEventListener('deviceorientation', function(eventData) {
var tiltLR = eventData.gamma;
console.log("tiltLR..........",tiltLR);
}, false);
}
答案 0 :(得分:0)
我之前不需要使用这种类型的事件监听器,所以我不熟悉输出。
但是,我相信您需要将旧倾斜与新倾斜进行比较。如果新的倾斜度大大大于或小于......执行代码。
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);
}