为了方便起见,我想构建一个函数来评估并返回各种媒体查询的结果。为此,我编写了以下内容:

//Evaluate Media Query
function eMQ(crit) {
    //Build Media Query From Criteria Parameter
    var lMQ = window.matchMedia(crit);
    //Evaluate and Return Result
    if (lMQ.matches) {
        return true;
    } else {
        return false;
    };
};


我想知道window.matchMedia(crit)是否将正确使用crit字符串,就像该字符串已明确写入一样。

快速编辑:考虑到上面的函数实际上只是window.matchMedia()并带有更多步骤,因此我想澄清我的目的。我只是发现window.matchMedia()太笨拙了,想要一个较短的版本,不需要最后包含.matches

最佳答案

只要您传递有效的媒体查询字符串,您的函数就应该可以正常工作,这与以下情况无关:


您将该媒体查询从变量发送到matchMedia
您明确将硬编码的媒体查询字符串发送到matchMedia


例如:

var crit = "(max-width: 700px)";
var lMQ = window.matchMedia(crit);


将具有与以下结果相同的结果:

var lMQ = window.matchMedia("(max-width: 700px)");

关于javascript - window.matchMedia(mediaQueryString)是否接受mediaQueryString的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61649497/

10-09 01:52