Javascript 如何获取媒体查询中使用的值,例如设备宽度
我理解在CSS中使用Javascript 如何获取媒体查询中使用的值,例如设备宽度,javascript,css,media-queries,Javascript,Css,Media Queries,我理解在CSS中使用@media查询,例如,当浏览器窗口大于某个数量时应用规则 我知道我也可以在Javascript中使用window.matchMedia()来判断特定查询是否匹配 但我如何才能真正获得正在使用的媒体的当前值呢 e、 g.如果我想访问媒体(例如屏幕,电视…),方向,单色,设备宽度或宽度,或者像@abhitalks在评论中所说的那样,这些都可以通过DOM访问吗,不可能从DOM中获取这些值 这是我的解决办法 对于具有一小组已知值的简单内容,您可以使用window.matchMedi
@media
查询,例如,当浏览器窗口大于某个数量时应用规则
我知道我也可以在Javascript中使用window.matchMedia()
来判断特定查询是否匹配
但我如何才能真正获得正在使用的媒体的当前值呢
e、 g.如果我想访问
媒体
(例如屏幕
,电视
…),方向
,单色
,设备宽度
或宽度
,或者像@abhitalks在评论中所说的那样,这些都可以通过DOM访问吗,不可能从DOM中获取这些值
这是我的解决办法
对于具有一小组已知值的简单内容,您可以使用window.matchMedia()
一次测试一个
对于查询中支持min-
前缀的数字内容,例如设备宽度
,您可以执行以下操作:
var ls, l=0, h=8192, c=parseInt((l+h)/2), i=20;
while (i > 0 && (c - l >1) && (h - c>1)) {
i--; // Shouldn't take more than 13 guesses, but in case of bugs!
if (window.matchMedia('(min-device-width: ' + c + 'px)').matches) {
l=c; ls=0;
} else {
h=c; ls=1;
}
c = parseInt((h+l)/2);
}
c -= ls;
alert("Device width is: ", c);
可能重复@Abhitalks谢谢,我已经编辑了问题。否。DOM中没有任何内容。您需要使用matchMedia来检查您正在寻找的任何功能。我撤回了重复投票。