你搞砸的一件事是,你在打开的时候
popoutwidth
类,但关闭时将内联样式设置为
width:0;
,这样当下次打开时,代码工作正常,但前一个关闭函数设置的内联样式导致了问题。
function openNav() {
// event && event.stopPropagation();
// document.getComputedStyle(document.getElementById(mySidenav)[0], null).getPropertyValue("popoutwidth");
// document.getElementById("mySidenav").style.width = "25";
document.getElementById("mySidenav").classList.add('popoutwidth');
document.getElementById("hamburger-icon").style.opacity = "0";
document.getElementById("hamburger-icon").style.fontSize = "1";
document.getElementById("hamburger-icon").style.marginRight = "0";
}
function closeNav() {
document.getElementById("mySidenav").classList.remove('popoutwidth');
document.getElementById("hamburger-icon").style.opacity = "1";
document.getElementById("hamburger-icon").style.fontSize = "28";
document.getElementById("hamburger-icon").style.marginRight = "15";
}
.sidenav {
position: absolute;
height: -webkit-fill-available;
/* position: absolute; */
width: 0;
z-index: 1;
/* margin-top: 18px; */
left: 0;
background-color: #ffffffba;
overflow-x: hidden;
color: black;
transition: 0.5s;
padding-top: 50px;
}
.popoutwidth {
width: 250px
}
<div class="row">
<div class="col-md-6 col-sm-6 col-xs-11" style=" margin-top: 7px;">
<span id="hamburger-icon" onclick="openNav()" style="vertical-align: middle; opacity: 1; font-size: 28px; margin-right: 15px;">â°</span>
<img class=" logo-img-big local-logo-img-big" src="cms-images/logo.png">
</div>
</div>
<div id="mySidenav" class="sidenav">
<div class="container">
<div class="row">
<a class="closebtn" onclick="closeNav()">×</a>
<!--Start Sectors & Products-->
<button class="dropdown-btn">
<span><i class="fa fa-caret-down"></i>button</span>
</button>
<ul>
<li>one</li>
<li>two</li>
</ul>
</div>
</div>
</div>