欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript根據(jù)CSS的Media Queries來判斷瀏覽設(shè)備的方法

 更新時間:2016年05月10日 17:39:31   作者:于江水  
這篇文章主要介紹了JavaScript根據(jù)CSS的Media Queries來判斷瀏覽設(shè)備的方法,主要思路是通過CSS Media Queries改變一個類的某個屬性值(例如 z-index),然后用JavaScript讀取判斷,需要的朋友可以參考下

CSS 部分

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

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

/* 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 已經(jīng)就位了,那么就需要用 JavaScript 來生成了一個臨時的 DOM 對象,然后為它設(shè)置對應(yīng)的類,然后再讀取這個對象的 z-index 值。原生的寫法如下:

// Create the state-indicator element
var indicator = document.createElement('div');
indicator.className = 'state-indicator';
document.body.appendChild(indicator);

// Create a method which returns device state
function getDeviceState() {
  return parseInt(window.getComputedStyle(indicator).getPropertyValue('z-index'), 10);
}
getDeviceState() 函數(shù)返回的就是 z-index 的值,為了增強一下可讀性,可以用 switch 函數(shù)來規(guī)范輸出一下:

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;
  }
}

這樣,就可以用一下代碼來判斷設(shè)備狀態(tài),然后執(zhí)行相應(yīng)的 JavaScript 代碼:

if(getDeviceState() == 'tablet') {
  // 平板電腦下執(zhí)行的 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();
});

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

相關(guān)文章

  • ie下js不執(zhí)行的幾種可能

    ie下js不執(zhí)行的幾種可能

    本文主要介紹了ie下js不執(zhí)行的幾種可能,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 用JS動態(tài)設(shè)置CSS樣式常見方法小結(jié)(推薦)

    用JS動態(tài)設(shè)置CSS樣式常見方法小結(jié)(推薦)

    本文給大家總結(jié)了js動態(tài)設(shè)置css樣式的常見方法,非常實用,對js設(shè)置css樣式相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-11-11
  • js使用ajax傳值給后臺,后臺返回字符串處理方法

    js使用ajax傳值給后臺,后臺返回字符串處理方法

    今天小編就為大家分享一篇js使用ajax傳值給后臺,后臺返回字符串處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • JS中實現(xiàn)淺拷貝和深拷貝的代碼詳解

    JS中實現(xiàn)淺拷貝和深拷貝的代碼詳解

    JavaScript的變量中包含兩種類型的值:基本類型值 和 引用類型值,這篇文章主要介紹了JS中實現(xiàn)淺拷貝和深拷貝,需要的朋友可以參考下
    2019-06-06
  • 微信小程序12行js代碼自己寫個滑塊功能(推薦)

    微信小程序12行js代碼自己寫個滑塊功能(推薦)

    這篇文章主要介紹了微信小程序12行js代碼自己寫個滑塊功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • JavaScript中Math對象相關(guān)知識全解

    JavaScript中Math對象相關(guān)知識全解

    Math對象中的方法很常用,來跟我一起看看吧,下面這篇文章主要給大家介紹了關(guān)于JavaScript中Math對象相關(guān)知識全解的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • js動態(tài)設(shè)置div的值下例子

    js動態(tài)設(shè)置div的值下例子

    設(shè)置div的值想必大家都會吧,按要說動態(tài)設(shè)置想必知道的人及寥寥無幾了,下面有個不錯的示例,希望對大家有所幫助
    2013-10-10
  • JavaScript函數(shù)柯里化詳解

    JavaScript函數(shù)柯里化詳解

    這篇文章主要為大家介紹了JavaScript函數(shù)柯里化,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 純JS實現(xiàn)表單驗證實例

    純JS實現(xiàn)表單驗證實例

    這篇文章主要介紹了純JS實現(xiàn)表單驗證實例,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • JavaScript的Number對象的toString()方法

    JavaScript的Number對象的toString()方法

    toString()方法可以把Number對象轉(zhuǎn)換成字符串,并返回此字符串,本文給大家介紹JavaScript的Number對象的toString()方法,對javascript對象方法相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12

最新評論