首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免HTML5 DeviceOrientationEvent连续触发

如何避免HTML5 DeviceOrientationEvent连续触发
EN

Stack Overflow用户
提问于 2016-12-09 19:28:19
回答 1查看 29关注 0票数 1

我正在尝试倾斜基于HTML5 DeviceOrientation事件的图像。然而,我看到即使在设备稳定的情况下,事件也在不断地触发,即不旋转/不移动。在下面的代码片段中,控制台日志被连续打印出来。可能的原因是什么,我如何才能阻止它。

我试过捕捉和冒泡,

代码语言:javascript
复制
  if (window.DeviceOrientationEvent) {
              window.addEventListener('deviceorientation', function(eventData) {
              var tiltLR = eventData.gamma;
              console.log("tiltLR..........",tiltLR);
              }, false);
            }
EN

回答 1

Stack Overflow用户

发布于 2016-12-09 19:52:33

我以前不需要使用这种类型的事件侦听器,所以我对输出不太熟悉。

然而,我认为你需要比较旧的倾斜和新的倾斜。如果新的倾斜度明显大于或小于...执行代码。

代码语言:javascript
复制
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);
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41059422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档