jQuery函数防止媒体查询触发

标签 jquery html css media-queries

我的 CSS 中有一些媒体查询来更改 HTML 元素的某些属性。其中一个元素是一个名为 .downloads 的 div,正在更改的属性之一是 .downloads 的高度。

@media (max-width: 764px) {
  .downloads {
      height: 500px;
  }
}

我还有一个 jQuery 函数,它在用户执行的另一个操作中操纵 .downloads 的高度。

$('.downloads').animate({'height': 250}, 500);

问题是,在 jQuery 函数之后,媒体查询不再起作用。我认为是的,因为 height 在 jQuery 函数被触发后被内联放置。

<div class="downloads" style="height: 250px;"></div>

对这个问题有什么想法吗?谢谢

最佳答案

好的,我想我明白你想要做什么了......

您想上下动画元素,但在较小的屏幕上保持固定在 500px 中。 因此,您不应该使用 JQuery,因为它会向元素添加内联样式,并且您将无法控制它与媒体查询规则的混合...

相反,添加/删除一个将具有 height 动画的类,并使用 JQuery 切换它。然后,您可以禁用媒体查询规则上的类属性:

Something like this

CSS:

.downloads {
    height: 0px;
    transition: 0.5s;
    overflow: hidden;
    border: 1px solid red;
}

.downloads.change {
    height: 250px;
}

@media (max-width: 764px) {
  .downloads,
  .downloads.change {
      transition: none;
      height: 500px;
  }
}

JS:

$('button').on('click', function() {
    $('.downloads').toggleClass('change');
});

关于jQuery函数防止媒体查询触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285497/

相关文章:

javascript - Google Places API - 地址和电话号码?

html - 对齐单选按钮 Bootstrap 的问题

html - 为什么垂直居中网页在小型显示器和移动设备上会中断?

javascript - 通过 AJAX 将 PHP 数据更改为 JS 数据(尤其是数组)时的最佳实践

javascript - 如何获取输入的值并将其放入确认表单中

javascript - 远程 JSON 的奇怪行为 Typeahead

html - CSS 未在 IE 中应用

javascript - 表格行中的 onClick 在 JavaScript/jQuery 中不起作用

html - 使元素消耗所有剩余高度

javascript - 有没有办法动态改变图标的​​颜色?