【问题标题】:Is there a javascript equivalent to using @media query? [duplicate]是否有相当于使用@media 查询的javascript? [复制]
【发布时间】:2015-07-20 07:34:11
【问题描述】:

我有这个代码:

@media screen and (max-width: 570px) {

    #header {
        .flex-wrap(wrap);
        .justify-content(center);

        #headerTitles {
            margin-top: 1rem;
        }

    }
}

@media screen and (min-width: 571px) and (max-width: 950px) {

    #header.authenticated {
        .flex-wrap(wrap);
        .justify-content(center);

        #headerTitles {
            margin-top: 2rem;
        }
    }

}

有没有一种方法可以使用 Javascript(不是 jQuery)动态添加或删除一个类来表示两种不同的大小,然后重新编码如下:

.small #headerTitles { margin-top: 1rem; }
.large #headerTitles { margin-top: 2rem; }

如果这可行,那么有人可以评论一下使用 Javascript 是否是更好的方法吗?

【问题讨论】:

  • 是的,你可以,使用 jQuery addClass() ;-)
  • 很抱歉,我正在寻找一种 javascript(不是 jQuery)的方式来执行此操作。谢谢
  • @SamanthaJ .matchMedia

标签: javascript html css


【解决方案1】:

您可以在 javascript 中使用window.matchMedia() 进行媒体查询。

例如

var mq = window.matchMedia( "(max-width: 570px)" );
if (mq.matches) {
    // window width is at less than 570px
}
else {
    // window width is greater than 570px
}

请参考以下链接以更好地理解

https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia http://www.sitepoint.com/javascript-media-queries/

根据评论更新

请参考plunker:“http://plnkr.co/edit/wAKFEFz0NU6ZaEmywlgc?p=preview

为了更好地理解:“http://www.javascriptkit.com/javatutors/matchmediamultiple.shtml

有关网络浏览器支持信息: "https://hacks.mozilla.org/2012/06/using-window-matchmedia-to-do-media-queries-in-javascript/"

【讨论】:

  • 我有点困惑。你能举个例子,例如当窗口小于 500 像素时
    的宽度设置为 100 像素,当窗口小于 600 像素时设置为 150 像素。这是否能够在我调整窗口大小时动态更改
    的宽度。这也是适用于所有现代浏览器的东西吗?
  • @SamanthaJ:更新了答案!!
猜你喜欢
相关资源
最近更新 更多
热门标签