orientationEvent.gamma 需要 +180 到 -180 度

Posted

技术标签:

【中文标题】orientationEvent.gamma 需要 +180 到 -180 度【英文标题】:orientationEvent.gamma is taking +180 to -180 degrees 【发布时间】:2016-08-03 19:38:00 【问题描述】:

经过漫长的不眠之夜,我终于设法将一个不错的倾斜处理程序集成到我正在开发的插件中,它可以检测浏览器是否可以处理倾斜,然后运行该浏览器的设备是否可以处理倾斜,设备的纵向或横向....等等等等。

一切都完成后,我开始在不同的设备上测试它。然而,当我在运行 ios 9.3.2 的 ipad air 上尝试它时,出现了一个有趣的麻烦。这是我用来测试方向的部分代码:

function handleOrientation(event)

    var alphaQ = event.alpha;
    var betaQ = event.beta;
    var gammaQ = event.gamma;
    var divnamehere = document.getElementById("somediv");
    divnamehere.innerhtml = "Alpha:" + alphaQ + "<br>Beta: " +
                            betaQ + "<br>Gamma: " + gammaQ;

window.addEventListener("deviceorientation", handleOrientation, false);

现在这显示了一个超过 +-90 度的 Gamma 值,并且可以放弃高达 +-180 度。但是 Alpha 的极限是 0 到 360 度,beta 是 -180 到 180 度,Gamma 是 -90 到 +90(不是 180)。

我能想到的唯一原因是 ipad 陀螺仪的工作方式不同。有人可以确认吗?谷歌叔叔让我失望了。

【问题讨论】:

我确实使用了检查将其限制为 90 度,这很容易,但是请有人确认这是否是不同设备中陀螺仪的差异? 【参考方案1】:

已确认。在 iPad Air 中,Gamma 旋转为 +180 到 -180,而不是 +90 到 -90。

【讨论】:

以上是关于orientationEvent.gamma 需要 +180 到 -180 度的主要内容,如果未能解决你的问题,请参考以下文章

我需要做一个android新闻客户端需要哪些知识

测试在公司和哪些人员来对接,需要看哪些文档,需要写哪些东西

如果其他模块需要,根 composer 文件中是不是需要 phpunit?

微信小程序需要啥知识

需要人陪

为啥Kafka需要zookeeper