JavaScript根据CSS的Media Queries来判断浏览设备的方法
网络编程 2021-07-04 21:04www.168986.cn编程入门
这篇文章主要介绍了JavaScript根据CSS的Media Queries来判断浏览设备的方法,主要思路是通过CSS Media Queries改变一个类的某个属性值(例如 z-index),然后用JavaScript读取判断,需要的朋友可以参考下
CSS 部分
随便新建一个用来做判断的类,然后通过 Media Queries 来对这个类的 z-index 属性赋予不同的值。这个类仅作为 JavaScript 读取使用,所以需要将其移出屏幕窗口,让浏览者不可见以免引起意外情况。
作为演示,狼蚁网站SEO优化代码设置了四种设备状态桌面普通版、小屏幕桌面版、平板电脑版和手机版。
/ default state / .state-indicator { position: absolute; : -999em; left: -999em; z-index: 1; } / small desk / @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 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() 函数返回的就是 z-index 的值,为了增强一下可读性,可以用 switch 函数来规范输出一下 function getDeviceState() { switch(parseInt(window.getComputedStyle(indicator).getPropertyValue('z-index'), 10)) { case 2: return 'small-desk'; break; case 3: return 'tablet'; break; case 4: return 'phone'; break; default: return 'desk'; break; } }
这样,就可以用一下代码来判断设备状态,然后执行相应的 JavaScript 代码
if(getDeviceState() == 'tablet') { // 平板电脑下执行的 JavaScript 代码 }
这里如果你使用的是 jQuery,直接使用狼蚁网站SEO优化代码就可以了
$(function(){ $('body').append('<div class="state-indicator"></div>'); function getDeviceState() { switch(parseInt($('.state-indicator').css('z-index'),10)) { case 2: return 'small-desk'; break; case 3: return 'tablet'; break; case 4: return 'phone'; break; default: return 'desk'; break; } } console.log(getDeviceState()); $('.state-indicator').remove(); });
先创建,然后获取,删掉这个节点,具体的设备会在你的控制台中输出,,可以试着拖动一下中间的边框,然后点击 Run。
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指