JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://code.jquery.com/jquery-3.4.1.slim.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.0/animate.min.css">
<div>
<div class="row button-container">
<div class="col" style="display: flex;">
<div id="sideExpand"><select>
<optgroup label="This is a group">
<option value="12" selected>This is item 1</option>
<option value="13">This is item 2</option>
<option value="14">This is item 3</option>
</optgroup>
</select><select>
<optgroup label="This is a group">
<option value="12" selected>This is item 1</option>
<option value="13">This is item 2</option>
<option value="14">This is item 3</option>
</optgroup>
</select><select>
<optgroup label="This is a group">
<option value="12" selected>This is item 1</option>
<option value="13">This is item 2</option>
<option value="14">This is item 3</option>
</optgroup>
</select></div>
<button class="btn btn btn-transparent btn-icon" id="filterToggle" onclick="SetActiveDiv('#sideExpand',this)"><i class="fa fa-filter" style="position: absolute;font-size: 150%;"></i></button>
</div>
</div>
</div>
CSS
#sideExpand {
display: none;
width: 100%;
border-radius: 35px;
background-color: rgba(31, 45, 65, 0.125);
}
select {
border: 0;
background-color: initial;
font-size: 100%;
display: block;
margin: auto;
word-wrap: normal;
}
.btn-icon {
padding: 0;
display: -webkit-inline-box;
display: inline-flex;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
overflow: hidden;
border-radius: 100%;
flex-shrink: 0;
height: calc( (1rem * 1.5) + (0.5rem * 2) + (2px) ) !important;
width: calc( (1rem * 1.5) + (0.5rem * 2) + (2px) ) !important;
}
JavaScript
function SetActiveDiv(ID, bt) {
var element = document.querySelector(ID);
if (element !== null) {
if (element.classList.contains("show")) {
element.classList.remove("show");
animateCSS(element, "fadeOutLeftBig", "2s")
animateCSS(bt, "fadeOutLeftBig", "2s")
return setTimeout(() => {
element.style.display = "none";
}, 2000);
} else {
element.style.display = "flex";
element.classList.add("show");
animateCSS(element, "fadeInLeftBig", "2s").then((message) => {});
return animateCSS(bt, "fadeInLeftBig", "2s").then((message) => {});
}
}
return console.log(ID, " not found!");
}