星空网 > 软件开发 > 网页设计

JavaScript根据CSS的Media Queries来判断浏览设备的方法

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 ></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();});

  





原标题:JavaScript根据CSS的Media Queries来判断浏览设备的方法

关键词:JavaScript

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

lazada海外:https://www.goluckyvip.com/tag/85013.html
lazada付款:https://www.goluckyvip.com/tag/85014.html
lazada全称:https://www.goluckyvip.com/tag/85015.html
lazada支付方式:https://www.goluckyvip.com/tag/85016.html
lazada商业模式:https://www.goluckyvip.com/tag/85017.html
lazada流程:https://www.goluckyvip.com/tag/85019.html
秦皇岛到丹东旅游景点大全 秦皇岛到丹东开车多长时间:https://www.vstour.cn/a/408253.html
求推荐适合情侣玩的地方,三天时间,谢谢:https://www.vstour.cn/a/408254.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流