有没有办法使用jquery在媒体查询中获取值?
示例:
@media(max-width:767px) { .story {color: black} }
使用jquery获取parens中的值:
max-width:767
答案 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" ){
}
}