我在视图中有以下内容:
<div class="bottom-nav container-fluid">
<div class="container">
<div class="row mobile-menu-row">
<div class="col"></div>
</div>
<div class="row mobile-menu-row">
<div class="slidedown"></div>
</div>
是否存在Slidedown和Slideup,这取决于用户单击按钮。目前,我将440px的高度应用于底导航,这是一个很大的高度,并且实际上仅希望在存在Slidedown并且屏幕尺寸小于768px的情况下出现在底导航上。有没有建议仅在出现一个类的情况下将CSS样式应用于另一个类?
我尝试过的尝试绝对没有用:
@media and (max-width: 767px) {
.bottom-nav .slidedown{
height: 440px;
}
}
这自然是行不通的,因为它是将其应用于向下滑动而不是底部导航部分。
我的JS文件具有:
const nav = () => {
const mobileButton = document.querySelector('a.mobile-button');
const menu = document.querySelector('.mobile-menu-cont');
const regionLink = document.querySelector('.mobile-menu-row ul > li');
const regionMenu = document.querySelector('.mobile-menu-row ul > li > ul');
const bottom = document.getElementsByClassName('bottom-nav');
function init() {
mobileButton.addEventListener('click', toggleMenu);
regionLink.addEventListener('click', toggleSubMenu);
}
let toggleMenu = (e) => {
e.preventDefault();
if (menu.classList.contains('slideup')) {
menu.classList = 'slidedown';
} else {
menu.classList = 'slideup';
}
};
if (menu.classList = 'slidedown'){
bottom.setAttribute("style", "height: 440px;")
} else {
bottom.setAttribute("style","height: 0;")
}
我以为这种情况会奏效,但看来只会破坏页面上的许多不同内容。
我也尝试过:
let toggleMenu = (e) => {
e.preventDefault();
if (menu.classList.contains('slideup')) {
menu.classList = 'slidedown';
bottom.setAttribute("style", "height: 440px;")
} else {
menu.classList = 'slideup';
bottom.setAttribute("style", "height: inherit;")
}
};
这弄乱了我页面上的许多其他JS。
答案 0 :(得分:0)
您接近了!无需挤压bottom
元素的完整样式属性,只需设置height
属性,同样,代替替换className
的{{1}},只需添加和减去来自类名:
menu