日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

移动端中如何检测设备方向的变化?

發布時間:2023/12/20 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 移动端中如何检测设备方向的变化? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

除非你的應用程序限定了只在移動設備直立狀態或水平狀態下使用,一般情況下,你需要調整一些設定。即便你設計的布局流暢時尚,你可能需要改變某些編程代碼。通常有以下一些小的策略用于檢測移動設備方向的改變。

orientationchange事件

你等待一個移動API,一個簡單的窗口orientationchange事件:

// 監聽方向的改變 window.addEventListener("orientationchange", function() { // 宣布新方向的數值 alert(window.orientation); }, false);

發生改變的時候,?window.orientation屬性就改變。值為0表示直立, 90表示設備水平旋轉到左邊, -90表示設備水平旋轉到右邊。

調整大小事件

有些設備不支持orientationchange事件,但可以觸發resize事件:

// 監聽調整大小的改變 window.addEventListener("resize", function() { // 得到屏幕尺寸 (內部/外部寬度,內部/外部高度) }, false);

跟orientationchange事件比起來較不明顯,但也是很好用的。

屏幕尺寸

有一些屬性可以從window對象恢復,以獲取屏幕尺寸及我認為的“虛擬”屏幕大小:

  • 外部寬度,外部高度:真正不動的象素(而不是320×356iPhone直立像素)
  • 內部寬度,內部高度:虛擬不動的象素(而不是320×356iPhone直立像素)

當然,這些數據不能告訴你方向的變化,需要通過簡答的數學計算,你就知道現在的窗口狀態是更寬了還是更高了。

媒體查詢

你還可以通過CSS媒體查詢判定方向:

/* portrait */ @media screen and (orientation:portrait) { /* portrait-specific styles */ } /* landscape */ @media screen and (orientation:landscape) { /* landscape-specific styles */ }

更聰明的做法是,用JavaScript編寫一個循環的”watcher”?,用以檢查一個塊的背景顏色,并觸發你自己的方向改變。

匹配媒體

本地window.matchMedia方法允許實時媒體查詢。我們可以利用以上媒體查詢找到我們是處于直立或水平視角:

// 尋找匹配 var mql = window.matchMedia("(orientation: portrait)");// 如果有匹配,則我們處于垂直視角 if(mql.matches) { // 直立方向 } else { //水平方向 }// 添加一個媒體查詢改變監聽者 mql.addListener(function(m) { if(m.matches) { // 改變到直立方向 } else { // 改變到水平方向 } });

  

  

轉載于:https://www.cnblogs.com/kt520/p/5681608.html

總結

以上是生活随笔為你收集整理的移动端中如何检测设备方向的变化?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。