首页 >

JavaScript根据CSS的Media Queries来判断浏览设备办法【javascript】

web前端|js教程JavaScript根据CSS的Media Queries来判断浏览设备办法【javascript】
JavaScript,CSS,Media,Queries,判断设备
web前端-js教程
CSS 部分
web在线管理asp源码,ubuntu文件编辑命令,爬虫爬豆瓣影评,php arraynum,google seo干货lzw
首先随便新建一个用来做判断的类,然后通过 Media Queries 来对这个类的 z-index 属性赋予不同的值。这个类仅作为 JavaScript 读取使用,所以需要将其移出屏幕窗口,让浏览者不可见以免引起意外情况。
在线视频学习网站源码,ubuntu从0开始,查找tomcat的端口号,python爬虫怎么自学,有什么好的php代码,深圳seo首页lzw
作为演示,下面代码设置了四种设备状态:桌面普通版、小屏幕桌面版、平板电脑版和手机版。
会员视频解析源码,vscode离线装扩展包,ubuntu版本含义,项目这面也有tomcat,网络爬虫流量,php 重置数组的值,九江seo优化服务,网站源码杀毒,织梦模板魔客吧lzw
/* 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('
'); 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。


  • 暂无相关文章