Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
Jquery 将函数条件匹配到媒体查询_Jquery - Fatal编程技术网

Jquery 将函数条件匹配到媒体查询

Jquery 将函数条件匹配到媒体查询,jquery,Jquery,这可能很明显,但我有点困惑 我有一个CSS中的媒体查询,根据窗口大小更改样式: @media screen and (max-width:39.9375em) { ... } 我需要编写一个jQuery函数,以便在屏幕大小低于media query中提到的大小时执行。我该怎么做 function matchScreen() { if ($(window).innerWidth() < ???) { ... } } 函数匹配屏幕(){ 如果($(窗口).

这可能很明显,但我有点困惑

我有一个CSS中的媒体查询,根据窗口大小更改样式:

@media screen and (max-width:39.9375em) {
  ...
}
我需要编写一个jQuery函数,以便在屏幕大小低于media query中提到的大小时执行。我该怎么做

function matchScreen() {
    if ($(window).innerWidth() < ???) {
       ...
    }
}
函数匹配屏幕(){
如果($(窗口).innerWidth()<??){
...
}
}

您可以使用
窗口
调整大小
事件,并在处理程序中,使用检查您是否有与该媒体查询匹配的内容

例如,沿着这些路线:

$(window).on("resize", function() {
    if (window.matchMedia("(max-width:39.9375em)").matches) {
        // It's a match
    } else {
        // It's not a match
    }
});
您还可以使用来自
matchMedia
的事件回调:

window.matchMedia("(max-width:39.9375em)").addListener(function(e) {
    if (e.matches) {
        // It's a match
    } else {
        // It's not a match
    }
});
…我怀疑(但不知道)这更有效


无论哪种方式,如果您在分支中所做的操作导致大小调整滞后,您可能需要稍微消除这种影响。

哇,从未见过这种情况。这是否适用于jQuery?@santa-是的,上面的第一个示例是使用jQuery。另请参见更新的答案,我忘记了
matchMedia
有一个提供回调的选项(我在第一个示例中没有选择
.matches
)。