## 一、橫豎屏切換事件
使用`window.orientation`檢測橫豎屏,值為下面的
* 0 豎屏(頭朝上)
* 180 豎屏(頭朝下)
* 90 橫屏(頭朝左)
* -90 橫屏(頭朝右)
~~~
window.addEventListener('orientationchange', function() {
if(window.orientation==90 || window.orientation==-90){
alert('橫屏');
}else if(window.orientation==0 || window.orientation==180){
alert('豎屏');
}
});
~~~
## 二、重力加速度事件
監聽`devicemotion`事件,在事件對象中,有下面的一些可用屬性 acceleration 設備在X,Y,Z三個軸的方向上移動的距離, 不包含重力加速度。
* accelerationIncludingGravity 設備在X,Y,Z三個軸方向移動的距離, 包含重力加速度(重力加速度通常取值為9.8m/s的二次方)
~~~
x軸加速度:以手機屏幕左右兩側為方向移動,往右為正,往左為負
y軸加速度:以手機屏幕前后兩側為方向移動,往前為正,往后為負
z軸加速度:以手機屏幕上下兩側為方向移動,往上為正,往下為負
~~~
* rotationRate 設備在 Alpha, Beta, Gamma 三個方向旋轉的速率(度/秒)
~~~
alpha:以設備坐標系z軸為軸的旋轉速率
beta:以設備坐標系x軸為軸的旋轉速率
gamma:以設備坐標系y軸為軸的旋轉速率
~~~
* interval 從設備獲取數據的頻率, 單位是毫秒
> 注意:ios與android里取到的屬性值不一致(正負相反),因為它們各自處理坐標的方式不同
對于設備上的方向,可以參考下面這張圖:

### 三、方向變化事件
監聽`deviceorientation`這個方向變化事件,事件對象當中,有下面幾個有用的值
* alpha 設備圍繞z軸方向旋轉的度數,范圍:0~360(頂部指向地球的北極,alpha此時為0)
* beta 設備圍繞x軸方向旋轉的度數,由前向后,范圍:-180~180
* gamma 設備圍繞y軸方向旋轉的度數,由左向右,范圍:-90~90
- 第一章:移動開發入門
- 第一節:概述
- 第二節:基礎概念
- 第一課時:像素
- 第二課時:視口
- 第二章:Flex 布局
- 第一節:概述
- 第二節:容器屬性
- 第一課時:flex-direction 屬性
- 第二課時:flex-wrap 屬性
- 第三課時:flex-flow 屬性
- 第四課時:justify-content 屬性
- 第五課時:align-items 屬性
- 第六課時:align-content 屬性
- 第三節:項目屬性
- 第一課時:order 屬性
- 第二課時:flex-grow 屬性
- 第三課時:flex-shrink 屬性
- 第四課時:flex-basis 屬性
- 第五課時:flex 屬性
- 第六課時:align-self 屬性
- 第四節:Flex 實例
- 第一課時:常見頁面布局
- 第三章:響應式布局
- 第一節:概述
- 第二節:媒體查詢
- 第一課時:概述
- 第二課時:響應式設計
- 第三節:柵格系統
- 第一課時:概述
- 第二課時:案例分析
- 第三課時:Bootstrap 簡介
- 第四節:響應式案例
- 第一課時:三星首頁
- 第四章:移動端適配
- 第五章:移動端事件
- 第一節:概述
- 第二節:touch 事件
- 第三節:觸摸事件對象
- 第四節:其他事件
- 第五節:移動端幻燈片
- 第六章:移動端常見問題
- 第一節:瀏覽器兼容性
- 第二節:移動端動畫
- 第三節:300ms 延遲
- 第四節:文字溢出省略
- 第五節:水平居中和垂直居中
- 第七章:項目案例
- 第一節:美團外賣
- 第一課時:首頁
- 第二課時:訂單頁面
- 第三課時:我的頁面
- 第四課時:詳情頁面
- 第五課時:購物車頁