Javascript 如何避免连续触发HTML5 DeviceOrientationEvent

Javascript 如何避免连续触发HTML5 DeviceOrientationEvent,javascript,html,Javascript,Html,我正在尝试倾斜一个基于HTML5 DeviceOrientation事件的图像。然而,我发现,即使设备稳定(即不旋转/不移动),事件也会持续触发。在下面的代码段中,控制台日志将连续打印。可能的原因是什么,我怎样才能阻止它 我试着捕捉和泡泡 if (window.DeviceOrientationEvent) { window.addEventListener('deviceorientation', function(eventData) {

我正在尝试倾斜一个基于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);
  }
if(window.DeviceOrientationEvent){
var originalTilt=未定义,
公差=5;
window.addEventListener('deviceorientation',函数(eventData){
如果(eventData.gamma>原始高度+公差||
eventData.gamma<原始高度-公差){
var tiltLR=eventData.gamma;
控制台日志(“TILLR…………”,TILLR);
原始高度=倾斜高度;
}
},假);
}

我以前不需要使用这种类型的事件侦听器,因此我不熟悉输出

但是,我相信您需要将旧倾斜与新倾斜进行比较。如果新的倾斜度大大大于或小于。。。执行代码

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);
  }
if(window.DeviceOrientationEvent){
var originalTilt=未定义,
公差=5;
window.addEventListener('deviceorientation',函数(eventData){
如果(eventData.gamma>原始高度+公差||
eventData.gamma<原始高度-公差){
var tiltLR=eventData.gamma;
控制台日志(“TILLR…………”,TILLR);
原始高度=倾斜高度;
}
},假);
}