2016-12-09 51 views
1

我想倾斜基于HTML5 DeviceOrientation事件的图像。但是,我看到即使设备稳定,即不旋转/不移动,事件也会持续发射。在以下代码片段中,连续打印控制台日志。什么是可能的原因,我怎么能阻止它。如何避免持续触发HTML5 DeviceOrientationEvent

我都尝试捕捉和冒泡,

if (window.DeviceOrientationEvent) { 
       window.addEventListener('deviceorientation', function(eventData) { 
       var tiltLR = eventData.gamma; 
       console.log("tiltLR..........",tiltLR); 
       }, false); 
      } 

回答

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); 
    }