javascript - 使用 javascript 触发媒体查询

标签 javascript jquery css media-queries

是否可以在使用 Javascript 单击按钮时触发媒体查询 @media (max-width: 600px) { .a { ... } } (没有浏览器宽度 真的 < 600px)

// $('#b').click(function(){ // trigger the media query });
.a { background-color: green; }

@media (max-width: 600px) { 
    .a { background-color: yellow; /* many other rules */ }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="a">Hello</div>
<input id="b" type="button" value="Change" />

最佳答案

您无法使用 JavaScript 触发媒体查询样式,但您可以通过使用单独的样式表并修改其 media 属性来启用它们。这就是我的意思:

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" media="all" href="regular_styles.css">
    <link rel="stylesheet" media="(max-width: 600px)" href="small_screen.css" id="small">
</head>
<body>

    <div class="a">Hello</div>
    <input id="b" type="button" value="Change" />

    <script src="jquery.min.js"></script>
    <script>
        $('#b').click(function(){
            // set the media query perimeter to "all"
            $('#small').attr('media', 'all');
        });
    </script>
</body>
</html>

regular_styles.css

.a { background-color: green; }

small_screen.css

.a { background-color: yellow; /* many other rules */ }

关于javascript - 使用 javascript 触发媒体查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37513795/

相关文章:

javascript - 按下另一个按钮后按钮切换类保持事件状态

c# - 从 cs 页面启用/禁用必填字段验证器?

javascript - jQuery UI sortable 的 serialize 方法排除了一项

chrome 浏览器中的 css 页脚问题

javascript - Summernote 图片从 URL 上传

javascript - 有没有办法动态暂停元素的所有事件监听器?

javascript - 如何为单个元素的 jQuery 组合框设置 minLength

jquery - 将背景颜色过渡到偏移位置

javascript - 自定义 HTML 页面的打印页眉/页脚输出

css - 我怎样才能延迟 :hover effect in CSS?