一、事件:devicemotion(檢測手機晃動)
對象: -accelerationIncludingGravity加速度
對象的屬性:
-x x方向速度
-y y方向加速度
-z z方向加速度
陀螺太過靈敏時卵沉,一般用Math.round();取其整數(shù)位颠锉。
陀螺儀的兼容性問題:在ios和Android中重力加速度值相反。需要手動解決其兼容性史汗。
var u=navigator.userAgent;//獲取userAgent琼掠,userAgent中含瀏覽器信息
var isAndroid=u.indexOf('Android')>-1||u.indexOf('Adr')>-1;//判斷是否是android
var isIOS=!!u.match(/\(i[^;]+;(u;)?CPU.+Mac OS X/);判斷是否是ios
也可以封裝一個函數(shù)出來:
function getAdr(){//android:true;ios:false;
var u=navigator.userAgent;//獲取userAgent,userAgent中含瀏覽器信息
return u.indexOf('Android')>-1||u.indexOf('Adr')>-1;//判斷是否是android
}
二停撞、事件:orientationchange(橫豎屏切換)
每次橫豎屏切換都會觸發(fā)該事件瓷蛙。
獲取當(dāng)前屏幕狀態(tài)(橫屏或者豎屏)悼瓮,需要檢測以下對象。
window下的對象:
window.orientation
//橫屏狀態(tài):90 -90
//豎屏狀態(tài):0 -180
用途:橫豎屏檢測
回顧:采用媒詢也可以實現(xiàn)橫豎屏檢測艰猬,其原理是利用屏幕可視區(qū)寬高比檢測橫豎屏狀態(tài)横堡。但是該情況存在bug,輸入法鍵盤窗口彈出影響了可視區(qū)寬高比可能會引起橫豎屏切換冠桃。
問題一:怎樣保證僅豎屏顯示命贴?
解決方法:因為在js中無法禁止橫豎屏切換,因此可以在發(fā)生橫豎屏切換時食听,用js控制同方向旋轉(zhuǎn)屏幕內(nèi)容胸蛛。注意導(dǎo)航欄也要旋轉(zhuǎn)。
二樱报、事件:deviceorientation(檢測手機傾斜旋轉(zhuǎn))
事件對象的屬性:
-alpha(rotateZ)
-beta(rotateX)
-gamma(rotateY)