H5 指针需要矫正三个方面
1 指针头不稳定,不停抖动。(ios不存在这个问题)
2 指针初始方向,指向不对
3 现实设备选择360°,指针选择不为360°
"initCompass": function() {
var compass = document.getElementById('compass');
if (compass == null) return;
if (window.DeviceOrientationEvent) {
var initialOffset = null;
window.addEventListener('deviceorientation', function(evt) {
if (initialOffset === null && evt.absolute !== true && +evt.webkitCompassAccuracy > 0 && +evt.webkitCompassAccuracy < 50) {
initialOffset = evt.webkitCompassHeading || 0;
}
var alpha = evt.alpha - initialOffset;
if (alpha < 0) {
alpha += 360;
}
compass.style.WebkitTransform = 'rotate(-' + alpha + 'deg)';
}, false);
window.addEventListener("compassneedscalibration", function(event) {
showMessage('您的罗盘需要校准,请将设备沿数字8方向移动。');
event.preventDefault();
}, true);
}
}