Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取媒体查询中使用的值,例如设备宽度_Javascript_Css_Media Queries - Fatal编程技术网

Javascript 如何获取媒体查询中使用的值,例如设备宽度

Javascript 如何获取媒体查询中使用的值,例如设备宽度,javascript,css,media-queries,Javascript,Css,Media Queries,我理解在CSS中使用@media查询,例如,当浏览器窗口大于某个数量时应用规则 我知道我也可以在Javascript中使用window.matchMedia()来判断特定查询是否匹配 但我如何才能真正获得正在使用的媒体的当前值呢 e、 g.如果我想访问媒体(例如屏幕,电视…),方向,单色,设备宽度或宽度,或者像@abhitalks在评论中所说的那样,这些都可以通过DOM访问吗,不可能从DOM中获取这些值 这是我的解决办法 对于具有一小组已知值的简单内容,您可以使用window.matchMedi

我理解在CSS中使用
@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来检查您正在寻找的任何功能。我撤回了重复投票。