javascript - 如何读取浏览器的媒体功能?

标签 javascript browser media-queries

对于media queries定义了许多媒体功能。

我想在 JavaScript 中读取浏览器的实际媒体功能值。我怎样才能做到这一点?

需要明确的是,我不想知道某些媒体查询是否匹配。例如,我想知道屏幕的物理宽度。与此类似的东西:

let width = window.getMediaValue("device-width", "cm");

最佳答案

每个设备都有自己的 dpi,JavaScript API 无法提供比 devicePixelRatio 更精确的信息。

devicePixelRatio Window 界面给你一个比例 指示渲染的页面是否应该缩放。

浏览器假定 devicePixelRatio 为 1 表示 96 dpi。我在自己的 17.3 英寸屏幕上进行了测试:

Math.sqrt(Math.pow(window.outerWidth / 96, 2) + Math.pow(window.outerHeight / 96, 2));

但它给了我 18.92 英寸,这是错误的。

然后我用了 online equation solver找出我屏幕的真实 dpi,它实际上是 105。

确实是我电脑上的结果

Math.sqrt(Math.pow(window.outerWidth / 105, 2) + Math.pow(window.outerHeight / 105, 2));

输出17.3

关于javascript - 如何读取浏览器的媒体功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34656089/

相关文章:

javascript - A型框架传送机制? (桌面/纸板)

html - 如何底部对齐 DIV 元素中的两个元素?

css - 为网络导出图像的最佳实践 - DPI/PPI

javascript - 阻止选择在 IE 中有效但在 Chrome 中无效的文本?

javascript - 针对移动/低速连接进行优化 - 全背景视频

css - 大尺寸手机的响应式设计

javascript - 根据我的指令,如何在父作用域上手动触发摘要周期?

javascript - 无法调用AJAX

javascript - 使用 new Function() 和字符串创建 SAPUI5 控件

html - 整页重新加载 (Ctrl+F5) 在 Firefox 中保持滚动位置