我使用的是github的"shake“函数--它有一个基于浏览器的javascript检测功能。
//feature detect
this.hasDeviceMotion = 'ondevicemotion' in window;即使在OS的Chrome上也是如此,感觉很奇怪,因为我不愿意在桌面上摇动我的显示器。
在OS上的Safari在测试时会返回"false“。
我已经搜索过了,但还是找不到Chrome为什么决定走这条路。这让我很恼火。
有没有更好的方法来进行这种检测?并不是所有的“移动设备”都有摇动功能。或者不让浏览器具有该功能,因为它似乎不能在windows手机中工作。
发布于 2014-05-31 05:22:27
我不太确定你的问题,我只是在深入研究它的功能,但是你可以使用像这样的东西
X : <span id="varx"></span>
Y : <span id="vary"></span>
Z : <span id="varz"></span>
<script>
window.ondevicemotion = function(event){
var accelerationX = event.accelerationIncludingGravity.x;
var accelerationY = event.accelerationIncludingGravity.y;
var accelerationZ = event.accelerationIncludingGravity.z;
document.getElementById("varx").innerHTML = accelerationX;
document.getElementById("vary").innerHTML = accelerationY;
document.getElementById("varz").innerHTML = accelerationZ;
};
</script>只有当事件有accelerationIncludingGravity属性时它才会显示这个值,这只在移动设备中可用,而不是100%这是你想要的,你也可以触发一个事件请求if(accelerationX){//execute action}else{//execute planB}希望这是帮助,如果它没有,我将很高兴了解并获得一些反馈。
https://stackoverflow.com/questions/20067969
复制相似问题