I am currently utilizing Bootstrap as my UI framework and attempting to create a push menu on the left side of the page. While I have made progress towards achieving this goal, there are some bugs in the system that I am encountering. Specifically, I am having trouble getting the menu to align inline properly. Below is the code for reference:
HTML
<div id="calendar-wrapper">
<div class="container-fluid">
<div class="row">
<div id="resource-bar" class="sidenav col-sm-2">
<h4>Resource</h4>
<div class="input-group">
<input type="text" placeholder="Search resource"
class="form-control resource-filter"/>
<span class="input-group-btn">
<button class="clear btn btn-default clean-resource btn-danger" type="button">
<span class="glyphicon glyphicon-remove"></span>
</button>
</span>
</div>
<div id="popover-content" hidden></div>
</div>
<div id="calendar-container" class="col-sm-10">
<div id="calendar" class="well"></div>
</div>
</div>
</div>
</div>
<br><br><br>
<button type="button" id="show" >Show</button>
<button type="button" id="hide" >Hide</button>
Note that the HTML provided above has been modified for demonstration purposes.
CSS
.sidenav
{
background-color: azure;
height: 100%;
width: 0;
z-index: 1;
top: 0;
left: 0;
overflow-x: hidden;
transition: 0.5s;
}
#calendar-container
{
background-color: whitesmoke;
transition: margin-left .5s;
padding: 16px;
}
JS
$(document).ready(function()
{
var resourceContainer = $('#resource-bar');
var calendarContainer = $('#calendar-container');
$('#show').click(function()
{
resourceContainer.css('width', '250px');
calendarContainer.css('margin-left', '250px');
});
$('#hide').click(function()
{
resourceContainer.css('width', '0px');
calendarContainer.css('margin-left', '0px');
});
})
When the left-side menu is closed, the layout appears as follows:
https://i.stack.imgur.com/gNxi1.png
The issue arises when the "show" button is clicked, causing the menu to appear:
https://i.stack.imgur.com/Ej5sa.png
Bugs noted include:
- Upon opening the menu, the divs display in two lines instead of one row
- Applying the class
col-sm-2
toresource-bar
means that theoverflow-x: hidden;
property does not take effect, resulting in the menu being visible when it should be hidden - The
col-sm-2
element does not wrap to a new line when the screen resolution is insufficient in width
If anyone could provide assistance in resolving these issues, it would be greatly appreciated. Thank you. JSFIDDLE.