我有一个“过滤条”,当屏幕有一定的宽度时显示,当屏幕变窄时消失。我已经在我的代码中使用媒体查询实现了这一点,它工作正常。
当屏幕变窄时,会出现一个按钮,用于显示隐藏的栏。我已经用JavaScript实现了这段代码,当我点击它时,栏会显示/隐藏:它可以工作。
我的问题是当我用按钮显示隐藏的栏时(所以窗口很窄),我增加窗口的大小直到达到栏必须显示的宽度,它没有。看起来像是JavaScript强加了栏的样式,所以媒体查询不起作用。如何管理?
我的代码和重要元素如下所示:
function displayHideFiltrerPar() {
let tmp = document.getElementById('container-left-small-screen');
if (tmp.style.display == "none" || tmp.style.display == "") {
tmp.style.display = "inline-block";
} else {
tmp.style.display = "none";
}
}
@media (min-width: 576px) and (max-width: 767px) {
.res-button-filtrer-par {
display: flex;
margin-bottom: 2em;
}
#container-left-small-screen {
display: none;
position: absolute;
width: 50%;
top: -130px;
}
}
@media (min-width: 768px) and (max-width: 991px) {
/* Size M */
.res-button-filtrer-par {
display: none;
}
#container-left-small-screen {
display: inline-block;
}
}
<button class="res-button-filtrer-par res-button" type="button" onClick="displayHideFiltrerPar();">
<span>Display filter bar</span>
</button>
<div id="container-left-small-screen">
Filter bar
</div>
1条答案
按热度按时间hmtdttj41#
不要让按钮直接改变样式,而是让它添加和删除一个类
hidden
。然后你可以让你的CSS不仅依赖于媒体查询,还依赖于那个类,如这个简化的例子所示:个字符
除了使用
toggle
方法,您还可以使用add
来添加类,或使用remove
来删除类。