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

首頁 > 開發 > JS > 正文

JavaScript根據CSS的Media Queries來判斷瀏覽設備的方法

2024-05-06 16:30:53
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript根據CSS的Media Queries來判斷瀏覽設備的方法,主要思路是通過CSS Media Queries改變一個類的某個屬性值(例如 z-index),然后用JavaScript讀取判斷,需要的朋友可以參考下
 

CSS 部分

首先隨便新建一個用來做判斷的類,然后通過 Media Queries 來對這個類的 z-index 屬性賦予不同的值。這個類僅作為 JavaScript 讀取使用,所以需要將其移出屏幕窗口,讓瀏覽者不可見以免引起意外情況。

作為演示,下面代碼設置了四種設備狀態:桌面普通版、小屏幕桌面版、平板電腦版和手機版。

/* default state */.state-indicator {  position: absolute;  top: -999em;  left: -999em;  z-index: 1;}/* small desktop */@media all and (max-width: 1200px) {  .state-indicator {    z-index: 2;  }}/* tablet */@media all and (max-width: 1024px) {  .state-indicator {    z-index: 3;  }}/* mobile phone */@media all and (max-width: 768px) {  .state-indicator {    z-index: 4;  }}

JavaScript 判斷

CSS 已經就位了,那么就需要用 JavaScript 來生成了一個臨時的 DOM 對象,然后為它設置對應的類,然后再讀取這個對象的 z-index 值。原生的寫法如下:

// Create the state-indicator elementvar indicator = document.createElement('div');indicator.className = 'state-indicator';document.body.appendChild(indicator);// Create a method which returns device statefunction getDeviceState() {  return parseInt(window.getComputedStyle(indicator).getPropertyValue('z-index'), 10);}getDeviceState() 函數返回的就是 z-index 的值,為了增強一下可讀性,可以用 switch 函數來規范輸出一下:function getDeviceState() {  switch(parseInt(window.getComputedStyle(indicator).getPropertyValue('z-index'), 10)) {    case 2:      return 'small-desktop';      break;    case 3:      return 'tablet';      break;    case 4:      return 'phone';      break;    default:      return 'desktop';      break;  }}

這樣,就可以用一下代碼來判斷設備狀態,然后執行相應的 JavaScript 代碼:

if(getDeviceState() == 'tablet') {  // 平板電腦下執行的 JavaScript 代碼}

這里如果你使用的是 jQuery,直接使用下面代碼就可以了:

$(function(){  $('body').append('<div class="state-indicator"></div>');  function getDeviceState() {    switch(parseInt($('.state-indicator').css('z-index'),10)) {      case 2:        return 'small-desktop';        break;      case 3:        return 'tablet';        break;      case 4:        return 'phone';        break;      default:        return 'desktop';        break;    }  }  console.log(getDeviceState());  $('.state-indicator').remove();});

先創建,然后獲取,最后刪掉這個節點,具體的設備會在你的控制臺中輸出,點擊這里查看 Demo ,可以試著拖動一下中間的邊框,然后點擊 Run。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 胶南市| 外汇| 肇源县| 罗定市| 承德市| 隆昌县| 柘城县| 准格尔旗| 塘沽区| 佳木斯市| 潜江市| 广宗县| 图们市| 高密市| 织金县| 剑河县| 丰都县| 老河口市| 稷山县| 施秉县| 海城市| 工布江达县| 乐清市| 横山县| 葫芦岛市| 乌拉特中旗| 赤壁市| 华蓥市| 吉林市| 扎赉特旗| 朝阳县| 榆林市| 新丰县| 耒阳市| 大方县| 宣武区| 抚远县| 砚山县| 西贡区| 宜阳县| 文昌市|