重力感应代码

例子:
//======================Orientation=======================================
	var coordinate = {
		x : 0,
		y : 0,
		z : 0
	};
	function Orientation(selector) {
	}

	Orientation.prototype.init = function() {
		window.addEventListener('deviceorientation', this.orientationListener,false);
		window.addEventListener('MozOrientation', this.orientationListener,false);
		window.addEventListener('devicemotion', this.orientationListener,false);
	}
	var orientDate = 0;
	Orientation.prototype.orientationListener = function(evt) {
		// For FF3.6+
		if (!evt.gamma && !evt.beta) {
			// angle=radian*180.0/PI 在firefox中x和y是弧度值,
			evt.gamma = (evt.x * (180 / Math.PI)); //转换成角度值,
			evt.beta = (evt.y * (180 / Math.PI)); //转换成角度值
			evt.alpha = (evt.z * (180 / Math.PI)); //转换成角度值
		}
		/* beta:  -180..180 (rotation around x axis) */
		/* gamma:  -90..90  (rotation around y axis) */
		/* alpha:    0..360 (rotation around z axis) (-180..180) */
		var gamma = evt.gamma
		var beta = evt.beta
		var alpha = evt.alpha
		if (evt.accelerationIncludingGravity) {
			// window.removeEventListener('deviceorientation', this.orientationListener, false);
			gamma = event.accelerationIncludingGravity.x * 10
			beta = -event.accelerationIncludingGravity.y * 10
			alpha = event.accelerationIncludingGravity.z * 10
		}
		if (this._lastGamma != gamma || this._lastBeta != beta) {
			//document.querySelector("#test2").innerHTML = "c-x: "+beta.toFixed(2)+"  c-y:"+gamma.toFixed(2)+"  c-z:"+(alpha != null ? alpha.toFixed(2) : 0)+ "<br>  o-x: " + coordinate.x + " o-y: " + coordinate.y + " o-z: " + coordinate.z;
			coordinate.x = beta.toFixed(2);
			coordinate.y = gamma.toFixed(2);
			coordinate.z = (alpha != null ? alpha.toFixed(2) : 0);
			//websocket("coor",coordinate.x+","+coordinate.y+","+coordinate.z);
			/* document.querySelector("#test").innerHTML = "x: " + coordinate.x
					+ " y: " + coordinate.y + " z: "
					+ coordinate.z; */
			//Math.max()
			this._lastGamma = gamma;
			this._lastBeta = beta;
		}
};
$(function(){
	(new Orientation()).init();
});

PS: coordinate为得到重力感应的x,y,z坐标

你可能感兴趣的:(代码)