使用Jquery获取媒体查询的价值

时间:2017-01-24 04:08:54

标签: jquery css3 media-queries

有没有办法使用jquery在媒体查询中获取值?

示例:

@media(max-width:767px) { .story {color: black} }

使用jquery获取parens中的值:

max-width:767

2 个答案:

答案 0 :(得分:3)

您可以迭代document.styleSheets,检查样式​​表的.cssRules.rules规则是instanceof CSSMediaRule,如果为真,则迭代CSSMediaRule { {1}}获取.cssRules的{​​{1}}。



.cssText

CSSMediaRule




如果您尝试收听媒体查询的更改,可以使用@media(max-width:767px) { .story { color: black } }<span class="story">span</span> <script> for (let sheet of document.styleSheets) { for (let rule of (sheet.cssRules || sheet.rules)) { if (rule instanceof CSSMediaRule) { cssmedia: for (let prop of rule.cssRules) { let mediarules = prop.parentRule.media; for (let i = 0; i < mediarules.length; i++) { if (mediarules[i] === "(max-width: 767px)") { document.querySelector(prop.selectorText) .textContent = prop.cssText; break cssmedia; } } } } } } </script>;见Testing media queries

window.matchMedia()

答案 1 :(得分:0)

在调整窗口大小时测量屏幕宽度,我检查媒体查询更改的css规则。这样,无论浏览器如何处理滚动条,媒体查询都会同时触发。

$(document).ready(function() {

    checkSize();

    $(window).resize(checkSize);
});

function checkSize(){
    if ($(".sampleClass").css("float") == "none" ){

    }
}