这是我的简单函数('mycompass' 是我体内的一个 div)
function watchCompass() {
var suc = function(a){
var r =a.magneticHeading;
document.getElementById('mycompass').style.webkitTransform = "rotateZ("+-r+"deg)";
};
var fail = function(){};
var opt = {};
opt.frequency = 50;
timer = navigator.compass.watchHeading(suc,fail,opt);
}
出于某种原因,当罗盘“轮子”从 0 度到 360 度完成完整旋转时,它会回到 0 而不是“虚拟”361 度......等等。无法理解从 0 度到 360 度没有区别...
我不知道如何计算让轮子顺时针和逆时针顺时针旋转的方法
提出这个问题的另一种方式是:
如何将我的对象以逆时针方向而不是顺时针方向旋转,例如,从 15 度旋转到 270 度?我怎样才能告诉我的脚本那个谷?
最佳答案
这是我的解决方法,但当车轮度数 == -360 或 360 时我仍然有问题
var angle = 0;
var lastAngle = 0;
function watchCompass() {
var suc = function(a){
var angle = roundNyc(a.magneticHeading);
l1 = angle - lastAngle;
l2 = 360 - l1;
if( Math.abs(l1) >= Math.abs(l2)){
r = (lastAngle - l2) ;
}else{
r = angle ;
}
lastAngle = r;
l1 = 0;
l2 = 0;
document.getElementById('mycompass').style.webkitTransform = 'rotateZ(' + -r + 'deg)';
};
var fail = function(){};
var opt = {};
opt.frequency = 50;
timer = navigator.compass.watchHeading(suc,fail,opt);
}
关于javascript - 像指南针一样旋转时的旋转 webkit 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349104/