国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

使用CSS媒體查詢(Media Queries)和JavaScript判斷瀏覽器設備類型的方法

2024-07-11 08:31:19
字體:
來源:轉載
供稿:網友

有無數的理由要求我們在任何時候都應該知道用戶是使用的什么設備瀏覽我們的網站——寬屏,普通屏,平板,手機?知道這些特征,我們web應用的CSS和JavaScript才能同步做相應的操作。在給Mozilla Developer Networks改版設計的過程中,我發現使用CSS媒體查詢(media queries)雖然非常的有效,但有時,JavaScript卻不能及時知道用戶瀏覽設備的狀態。瀏覽網站的用戶使用的是桌面電腦,還是平板,還是手機?這對于CSS來說很容易,但CSS卻無法將這些信息告訴JavaScript。我發明了一種基于CSS媒體查詢和z-index屬性的方法,能告訴JavaScript用戶當前使用的是什么屏幕,這樣我能調整JavaScript的動作來響應這種屏幕尺寸。

CSS代碼

首先最重要的還是CSS媒體查詢代碼。這里只是示例,我們創建了三個媒體查詢規則(但不包括缺省的“all”),它能控制四種屏幕情況:桌面(這是缺省狀態,不需要媒體查詢規則),“小屏幕”,平板,手機。針對每一種屏幕,我們給它一種不同的z-index值,這個值我們可以用JavaScript檢測到。我們把這個元素定位到屏幕外,這樣它就不會顯示出來;記住,它的作用就是存放z-index值,我們要用javaScript獲取這個值。

復制代碼
代碼如下:
/* 缺省屏幕 */
.state-indicator {
position: absolute;
top: -999em;
left: -999em;
z-index: 1;
}
/* 小屏幕 */
@media all and (max-width: 1200px) {
.state-indicator {
z-index: 2;
}
}
/* 平板 */
@media all and (max-width: 1024px) {
.state-indicator {
z-index: 3;
}
}
/* 手機 */
@media all and (max-width: 768px) {
.state-indicator {
z-index: 4;
}
}

每種z-index都在告訴我們的JavaScript當前的用戶使用的是什么規格的屏幕。我們并不像知道用戶究竟使用的是什么設備,因為你可以將瀏覽器寬度拉的很窄,但我們需要就是可視寬度,這樣我們可以調整應用的布局。

JavaScript代碼

也許你認為可以在DomContentLoaded時知道屏幕的大小,但我們需要實時知道屏幕的大小(因為用戶會調整瀏覽器窗口的大小),我們需要有個方法獲取當前窗口的屬性:

復制代碼
代碼如下:
// 創建狀態指示元素
var indicator = document.createElement('div');
indicator.className = 'state-indicator';
document.body.appendChild(indicator);
// 獲取設備類別的方法
function getDeviceState() {
return parseInt(window.getComputedStyle(indicator).getPropertyValue('z-index'), 10);
}

使用這個方法,你就能檢測出頁面布局/js飾件中那些需要顯示,那些需要隱藏。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镶黄旗| 绥棱县| 四子王旗| 德江县| 肇源县| 时尚| 天津市| 将乐县| 盐池县| 宁海县| 万盛区| 图木舒克市| 砀山县| 张家界市| 富源县| 个旧市| 襄樊市| 延津县| 安宁市| 凤庆县| 赣榆县| 当雄县| 长治市| 哈密市| 太仓市| 霍州市| 错那县| 于田县| 廊坊市| 香港 | 商河县| 贵定县| 静乐县| 海林市| 运城市| 巍山| 岳阳县| 和龙市| 中超| 松滋市| 丰顺县|